我刚刚创建了一个具有以下属性的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
这些方法是什么?有没有针对他们的文档?
答案 0 :(得分:6)
这是一个类可以实现的访问器方法,以支持可变多对多关系的键值编码, 请参阅“键值编码编程指南”中的Mutable Unordered Accessors:
为了成为可变无序的密钥值编码投诉 你必须实现以下方法的多对多关系:
-add<Key>Object:
或-add<Key>:
。必须实现这些方法中的至少一种。这些类似于NSMutableSet
方法addObject:
。
其他Key-Value编码访问器方法也会发生同样的“奇怪”自动完成, 例如:
- (void)remove...
- (void)intersect...
- (NSUInteger)countOf...