2010-07-25 10 views
6

मैं अपनी पहली कक्षा को उद्देश्य-सी में लिखने की कोशिश कर रहा हूं और मैं वर्ग की विधि में पैरामीटर के रूप में एक एनएसएसटींग ऑब्जेक्ट को पास करना चाहता हूं, हालांकि मुझे यह कहते हुए एक त्रुटि मिलती है कि "किसी ऑब्जेक्ट को किसी विधि के पैरामीटर के रूप में उपयोग नहीं कर सकता "। तो मेरा सवाल यह है कि आप किसी विधि को पैरामीटर के रूप में स्ट्रिंग कैसे पास करते हैं? यहां मेरा कोड है कि मैं काम करने की कोशिश कर रहा हूं:मैं उद्देश्य-सी में विधि पैरामीटर के रूप में एक स्ट्रिंग कैसे पास करूं?

#import <Foundation/Foundation.h> 

@interface Car 
{ 
    NSString *color; 
    NSString *make; 
    int year; 
}  

- (void) print; 
- (void) setColor: (NSString) c; 
- (void) setMake: (NSString) m; 
- (void) setYear: (int) y; 


@end 

@implementation Car 

- (void) print 
{ 
    NSLog(@"The $d Ford %@ is [email protected]", year, make, color); 
} 

- (void) setColor: (NSString) c 
{ 
    color=c; 
} 

- (void) setMake: (NSString) m 
{ 
    make=m; 
} 

- (void) setYear: (int) y 
{ 
    year=y; 
} 


@end 



int main (int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

    Car *car= [Car new]; 

    [car setColor:@"blue"]; 
    [car setMake:@"Bronco"]; 
    [car setYear:1992] 

    [car print]; 
    [car release]; 

    [pool drain]; 
    return 0; 
} 

उत्तर

15

आपको अपनी स्ट्रिंग ऑब्जेक्ट में पॉइंटर को सौंपने की आवश्यकता है। तो आपको पैरामीटर के प्रकार में * * जोड़ने की आवश्यकता है:

f.e.

- (void) print; 
- (void) setColor:(NSString *) c; 
- (void) setMake:(NSString *) m; 
- (void) setYear:(int) y; 

और कार्यान्वयन

+0

कि पूरी तरह से काम किया है में एक ही है, धन्यवाद आपकी मदद मैं एक जवाब के लिए वेब की खोज कर रहे हैं और आप केवल एक मुझे जवाब देने में सक्षम किया गया है, जो कर रहे हैं के लिए बहुत बहुत । तो एक गुच्छा धन्यवाद – Joe

संबंधित मुद्दे

 संबंधित मुद्दे