什么是自动生成的方法添加<propertyname> :( NSSet *)对象并添加<propertyname> Object:(<object-type> *)object?</object-type> </propertyname> </propertyname>

时间:2015-01-27 23:31:42

标签: objective-c

我之前从未见过这些方法,它们似乎是为类中声明的每个属性自动生成的。它们可以在@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

编辑:我已经在&#34;无序的Setter&#34;中找到了clang来源(SemaCodeComplete.cpp)中完成的来源。部分。还有一个&#34;无序的吸气者&#34;部分。有趣的是,还有一个自动完成的方法intersectKey:(NSSet *)objects,其中key是属性的名称。怪异。

1 个答案:

答案 0 :(得分:0)

看起来他们在那里支持核心数据。 This文档列出了“自定义多对多关系访问器方法”下的方法。在同一文档的早些时候,它表示“核心数据甚至对NSManagedObject所代表的实体也是如此”。这是一个拼写错误,它应该说“即使对于未表示的实体”,或者自动完成中存在一个错误,它会为非NSManagedObject对象生成这些方法。