2012-12-20 16 views
6

के साथ संपत्ति गेटटर को ओवरराइड नहीं कर सकता है मुझे एक्सकोड 4.5 के साथ इसका उपयोग करते समय कुछ पुराने नमूना कोड के साथ कुछ समस्याएं आ रही हैं।एक्सकोड 4.5

मेरी कोड में मैं निम्नलिखित संपत्ति

@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel; 

परिभाषित किया है तो मैं निम्नलिखित है एक्सेसर विधि:

- (NSManagedObjectModel *)managedObjectModel { 
    if (_managedObjectModel != nil) 
    { 
     return _managedObjectModel; 
    } 

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyPrototype" 
                withExtension:@"momd"]; 
    _managedObjectModel = [[NSManagedObjectModel alloc] 
              initWithContentsOfURL:modelURL]; 
    return _managedObjectModel; 
} 

समस्या यह है कि Xcode में अनेक त्रुटियां फेंकता के रूप में यह नहीं _managedObjectModel 'देख' सकते हैं । अगर मैं managedObjectModel से managedObjectModel2 तक एक्सेसर का नाम बदलता हूं, तो सब कुछ ठीक काम करता है। मुझे लगता है कि यह मुद्दा Xcode 4.5 स्वचालित संपत्ति संश्लेषण से संबंधित है, लेकिन मुझे नहीं पता कि इस मुद्दे से बचने के लिए मुझे क्या करना चाहिए। कोई सुझाव?

उत्तर

12

बजना अपने आप आपके लिए एक उदाहरण चर संश्लेषित नहीं करेगा कि क्या यह किसी भी तरीकों उत्पन्न करने के लिए नहीं है। इस मामले में, आपने एक पठनीय संपत्ति के लिए कहा है, इसलिए कोई सेटटर नहीं है, और आप गेटर प्रदान कर रहे हैं। आप बस @synthesize managedObjectModel=_managedObjectModel या केवल इंस्टेंस वैरिएबल घोषित कर सकते हैं।

+0

धन्यवाद। इस मुद्दे को हल किया। – Huibert

+2

@ ह्यूबर्ट, अगर इसे हटाया गया है, तो आपको उत्तर को सही –

+0

के रूप में चिह्नित करना चाहिए धन्यवाद, लुइस। मुझे इसका एहसास नहीं हुआ। यह मेरा पहला सवाल था, निश्चित रूप से आखिरी नहीं। महान समुदाय – Huibert

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