iOS - 在codeSense中出现自动合成属性的"添加"方法

Wil*_*sch 9 xcode properties automatic-properties ios

我刚刚创建了一个具有以下属性的iOS类:

@property (nonatomic, strong) NSString* foo;
@property (nonatomic, strong) NSObject* bar;
@property (nonatomic) CGRect fubar;
Run Code Online (Sandbox Code Playgroud)

我没有为这些属性添加任何@synthesize或显式的ivars.然后我进入实现文件并开始创建一个方法如下:

-(void) add
Run Code Online (Sandbox Code Playgroud)

我将光标留在"添加"一词的末尾.然后在代码意义上弹出以下方法名称:

addBar: (NSSet*) objects
addBarObject: (objectType *) object
addFoo: (NSSet*) objects
addFooObject: (objectType *) object
addFubar: (NSSet*) objects
addFubarObject: (objectType *) object
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*n R 6

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

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

-add<Key>Object:-add<Key>:.必须实现这些方法中的至少一种.这些类似于该NSMutableSet方法 addObject:.

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

- (void)remove...
- (void)intersect...
- (NSUInteger)countOf...
Run Code Online (Sandbox Code Playgroud)