首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是自动生成的方法add<propertyName>:(NSSet *)对象和add<propertyName>Object:(<object-type> *)对象?

什么是自动生成的方法add<propertyName>:(NSSet *)对象和add<propertyName>Object:(<object-type> *)对象?
EN

Stack Overflow用户
提问于 2015-01-27 23:31:42
回答 1查看 27关注 0票数 1

我以前从未见过这些方法,它们似乎是为类上声明的每个属性自动生成的。它们可以在@implementationNSObject子类中完成,但我似乎不能触发它们。我可以通过将方法添加到头来手动调用它们,但是我看不到对象中的任何更改。

代码语言:javascript
复制
#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

编辑:我在“无序设置者”部分的clang源(SemaCodeComplete.cpp)中找到了完成的来源。还有一个“无序的Getters”部分。有趣的是,还有一个自动完成的方法intersectKey:(NSSet *)objects,其中键是属性的名称。真奇怪。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 23:59:59

看来他们是为了支持核心数据。文档列出了“自定义到多个关系访问器方法”下的方法。在同一文档的前面,有这样的说法:“核心数据甚至对于由NSManagedObject表示的实体也是这样做的”。这要么是一个错误,它应该说“即使对没有表示的实体”,或者在自动完成中存在一个错误,它为非NSManagedObject对象生成这些方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28181986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档