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 description
是NSObject
的方法的名稱。
這是不是導致飛機墜毀,直到我在iOS 8
我的理解是正確的,是有使用這裏命名description
變量的方式開始測試?
有關爲什麼這在iOS 7中工作的想法? – Chris 2014-09-10 20:03:47
很可能是一個不同的編譯器。如果你真的想使用'description',確保'@ synthesize'你的屬性在實現中。 – 2014-09-10 20:12:56
@LeoNatan沒有不同的編譯器。在iOS 7中,'debugDescription','hash','description'和'superclass'都是具有內化屬性的'NSObject'上的所有方法,現在它們是公共只讀屬性。這似乎以奇怪的方式打破了很多事情。 – 2014-10-27 15:32:46