2014-09-10 54 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