9

我刚刚创建了一个具有以下属性的 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

这些方法是什么?有他们的文档吗?

4

1 回答 1

6

这是一个类可以实现的访问器方法,以支持可变对多关系的键值编码,请参阅“键值编码编程指南”中的可变无序访问器:

为了成为可变无序对多关系的键值编码投诉,您必须实现以下方法:

-add<Key>Object:-add<Key>:。必须至少实施其中一种方法。这些都是类似的NSMutableSet方法 addObject:

其他 Key-Value 编码访问器方法也会发生相同的“奇怪”自动完成,例如:

- (void)remove...
- (void)intersect...
- (NSUInteger)countOf...
于 2013-03-10T21:29:03.293 回答