我刚刚创建了一个具有以下属性的 iOS 类:
@property (nonatomic, strong) NSString* foo;
@property (nonatomic, strong) NSObject* bar;
@property (nonatomic) CGRect fubar;
我没有为这些属性输入任何@synthesize 或明确的ivars。然后我进入实现文件并开始创建一个方法,如下所示:
-(void) add
我将光标留在“添加”一词的末尾。然后在代码意义上弹出以下方法名称:
addBar: (NSSet*) objects
addBarObject: (objectType *) object
addFoo: (NSSet*) objects
addFooObject: (objectType *) object
addFubar: (NSSet*) objects
addFubarObject: (objectType *) object
这些方法是什么?有他们的文档吗?
最佳答案
这是一个类可以实现的访问器方法,以支持可变的对多关系的键值编码, 见Mutable Unordered Accessors在《Key-Value Coding Programming Guide》中:
In order to be key-value coding complaint for a mutable unordered to-many relationship you must implement the following methods:
-add<Key>Object:
or-add<Key>:
. At least one of these methods must be implemented. These are analogous to theNSMutableSet
methodaddObject:
.
对于其他键值编码访问器方法,也会发生同样的“奇怪”自动完成, 例如:
- (void)remove...
- (void)intersect...
- (NSUInteger)countOf...
关于iOS -- "add"方法出现在 codeSense 中的自动合成属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15327444/