संपादन और iPhone SDK फ्रेमवर्क?

वोट
1

मैं MapKit के साथ काम कर रहा हूँ और मेरे एनोटेशन से प्रत्येक के लिए एक (NSString *) itemTag मान जोड़ने के लिए सक्षम होना चाहते हैं। मैं myAnnotiation.m और myAnnotation.h बनाया है

मैं myAnnotation.h / मीटर itemTag जोड़ने की कोशिश की लेकिन जब मैं अपने मुख्य कोड के भीतर currentAnnotation.itemTag तक पहुँचने का प्रयास है, यह कहते हैं, प्रोटोकॉल में नहीं मिला Itemid - तो मैं MapKit.Framework करने और MKAnnotation.h में चला गया। मैं (NSString *) Itemid जोड़ा है, लेकिन जब मैं फ्रेमवर्क में ज फ़ाइल सहेजें, यह फ़ाइल के आइकन बदल जाता है और बाकी सब कुछ के साथ jiving से प्रतीत नहीं होता है।

कोई मदद या लिंक मदद करने के लिए बहुत सराहना की जाएगी। मैं भी यकीन है कि अगर मैं सही रास्ते यहाँ पर हूँ, लेकिन Googling iPhone SDK ढांचे को संशोधित बारी नहीं है ज्यादा नहीं हूँ।

23/03/2010 को 17:51
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
4

क्यों आप ढांचे को संशोधित करने की कोशिश कर रहे हैं? आप को परिभाषित किया जाना चाहिए itemIDकिसी संपत्ति या उदाहरण चर (या दोनों) के रूप में myAnnotation.h। आप कहते हैं कि currentAnnotation.itemTag काम नहीं किया; कि काम करने के लिए, आप है की जरूरत है itemTagएक संपत्ति वर्ग जो कुछ के रूप में परिभाषित किया currentAnnotationके अंतर्गत आता है।

ढांचे के लिए हेडर फाइल बदलने यह पुन: संयोजित नहीं होगा, इसलिए आपको लगता है कि काम करने के लिए प्राप्त करने में सक्षम नहीं होगा।

संपादित करें: यहाँ एक उदाहरण है।

में MyAnnotation.h:

@interface MyAnnotation : NSObject <MKAnnotation> {
    NSString *itemID;
    // Other instance variables
}

@property (nonatomic, retain) NSString *itemID;

// Class and instance methods.

@end

में MyAnnotation.m:

@implementation MyAnnotation

@synthesize itemID;

// Your code here.

@end

@propertyकॉल संपत्ति को परिभाषित करता है और @synthesizeकॉल आप के लिए setters और getters पैदा करेगा (तरीकों की स्थापना की और से मान प्राप्त करने के लिए itemID)। में MyAnnotation.m, आप उपयोग कर सकते हैं self.itemIDया [self itemID]के मूल्य प्राप्त करने itemID, और आप उपयोग कर सकते हैं self.itemID = @"something"या [self setItemID:@"Something"]मान सेट करने के।

संपादित करें 2:

जब आप प्राप्त currentAnnotationहै, अगर संकलक नहीं जानता है कि एनोटेशन अपने MyAnnotation वर्ग का एक उदाहरण है, इसके बारे में पता नहीं होगा itemID। तो, पहले सुनिश्चित करें कि आप अपने की शुरुआत में इस लाइन को शामिल किया है .mफ़ाइल:

#import MyAnnotation.h

यही कारण है कि यह सुनिश्चित wil कि संकलक वर्ग के बारे में जानता है। जब आप का उपयोग currentAnnotation, आप इसे का एक उदाहरण के रूप में कास्ट MyAnnotationइसलिए की तरह:

(MyAnnotation*)currentAnnotation

यही कारण है कि नीचे चेतावनी शांत करना चाहिए।

23/03/2010 को 18:14
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more