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