2012-12-20 23 views
6

Xcode 4.5 ile kullanırken eski örnek kodlarında bazı sorunlar yaşıyorum.XCode 4.5 ile özellik geter'i geçersiz kılma

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

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

sorun _managedObjectModel 'bakınız' olamaz gibi Xcode birden fazla hata atar şudur: Benim kod

Ben aşağıdaki özellik Sonra yöntemle erişimci aşağıdakilere sahip

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

tanımladıktan . Eğer erişimcinin ismini managedObjectModel'dan managedObjectModel2'a değiştirirsem, her şey yolunda gider. Sorunun Xcode 4.5 otomatik özellik sentezleme ile ilgili olduğunu sanırım, ancak sorunu önlemek için ne yapmalıyım bilmiyorum. Baska öneri?

cevap

12

Clang, üretmek için herhangi bir yöntem yoksa otomatik olarak bir örnek değişkenini sentezlemez. Bu durumda, salt okunur bir özellik istediniz, bu nedenle ayarlayıcı yok ve alıcıyı sağladınız. Sadece @synthesize managedObjectModel=_managedObjectModel veya sadece örnek değişkenini kendiniz ilan edebilirsiniz.

+0

Teşekkürler. Bu sorunu çözdü. – Huibert

+2

@Huibert, eğer soran olursa, cevabı doğru olarak işaretlemelisiniz –

+0

Teşekkürler, Luis.O fark etmedim. Bu benim ilk sorum, kesinlikle son değil. Harika topluluk. – Huibert