您能告诉我这些自定义访问者的含义:
为什么要在setter旁边添加此信息:
@property (assign,getter=isSelected) BOOL selected;
关于二传手,
@property (copy,setter=setDefaultTitle:) NSString* title;
这与编写@synthesize title = defaultTitle?
相同由于
答案 0 :(得分:2)
@property (assign,getter=isSelected) BOOL selected;
在头文件中,指定您希望其他类能够使用myObject.isSelected
来访问此属性。您在类的公共接口中定义此名称。
@synthesize title = defaultTitle;
在您的实现文件中,指定您已为其他类定义了一个名为title
的属性,但在您的类的内部,您希望实际使用名称defaultTitle
。这通常在您声明了自己的名为defaultTitle
的私有实例变量时完成,您不希望人们直接修改它。
答案 1 :(得分:1)
@property (assign,getter=isSelected) BOOL selected;
必须指定getter以符合命名约定。请参阅Apple的手册引文:
通常,您应指定作为键值的访问者方法名称 符合编码(参见键值编码编程指南) - 常见 使用getter装饰器的原因是坚持 布尔值的isPropertyName约定。
@property (copy,setter=setDefaultTitle:) NSString* title;
如果你还指定了getter,它也是一样的。但是,您必须使用@synthesize title = defaultTitle;
为getter / setter方法生成正确的方法名称。