我之前从未见过这些方法,它们似乎是为类中声明的每个属性自动生成的。它们可以在@implementation
子类的NSObject
中完成,但我似乎无法触发它们。我可以通过将方法添加到标题中来手动调用它们,但我无法看到对象中的任何更改。
#import "Example.h"
@interface Example ()
@property NSString *title;
@end
@implementation Example
-(void)addTitle:(NSSet *)objects
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
-(void)addTitleObject:(NSString *)object
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
@end
编辑:我已经在"无序的Setter"中找到了clang来源(SemaCodeComplete.cpp)中完成的来源。部分。还有一个"无序的吸气者"部分。有趣的是,还有一个自动完成的方法intersectKey:(NSSet *)objects
,其中key是属性的名称。怪异。
答案 0 :(得分:0)
看起来他们在那里支持核心数据。 This文档列出了“自定义多对多关系访问器方法”下的方法。在同一文档的早些时候,它表示“核心数据甚至对NSManagedObject所代表的实体也是如此”。这是一个拼写错误,它应该说“即使对于未表示的实体”,或者自动完成中存在一个错误,它会为非NSManagedObject对象生成这些方法。