2014-09-10 64 views
0

我有一個擴展NSObject的一類項目的變量:使用名爲「描述」當擴展NSObject的

interface ExtendedObject : NSObject<MKAnnotation> 

@property NSString *name; 
@property NSString *address; 
@property NSString *description; 

@end 

當我在以後使用這個類,並試圖將值分配給對象的description變量:

#import 「ExtendedObject」 

@implementation MyClass 

-(void)viewDidLoad { 

    ExtendedObject *myObj = [ExtendedObject alloc]; 
    myObj.description = @「SOME TEXT HERE」; 

} 

@end 

我得到一個錯誤: -[ExtendedObject setDescription:]: unrecognized selector sent to instance

從我所收集的,這是發生因爲... e descriptionNSObject的方法的名稱。

這是不是導致飛機墜毀,直到我在iOS 8

我的理解是正確的,是有使用這裏命名description變量的方式開始測試?

回答

1

NSObject已經有一個只讀description屬性。使用不同的名稱。

+0

有關爲什麼這在iOS 7中工作的想法? – Chris 2014-09-10 20:03:47

+0

很可能是一個不同的編譯器。如果你真的想使用'description',確保'@ synthesize'你的屬性在實現中。 – 2014-09-10 20:12:56

+1

@LeoNatan沒有不同的編譯器。在iOS 7中,'debugDescription','hash','description'和'superclass'都是具有內化屬性的'NSObject'上的所有方法,現在它們是公共只讀屬性。這似乎以奇怪的方式打破了很多事情。 – 2014-10-27 15:32:46

相關問題