2012-08-22 35 views
1

所以我当然知道基本属性获取者和设置者。Objective C合成属性add vs set?

- (void)setAnObject:(NSObject *)anObject 
{ 

} 

- (NSObject *)anObject 
{ 
    return _anObject; 
} 

但是我今天在代码完成时注意到,对于每个属性,这些添加方法也被创建。我做了一些搜索,找不到它们的参考。这些是什么,他们做了什么?

- (void)addAnObject:(NSSet *)objects 
{ 

} 

- (void)addAnObjectObject:(<#object-type#> *)object 
{ 

} 
+0

这些会成为核心数据对象吗? –

+0

不,他们不是。在一个案例中,他们是,但我做了一个空白的项目,只是创建了一个'NSObject * anObject'属性,没有别的只是为了看到。 –

回答

3

那些是KVC-compliant accessorsanObject属性,该属性的Xcode大概认为是集合类型(例如NSSet中)。 (编辑: Xcode可能不会这样认为,但无论如何建议完成。)

+0

非常感谢。它们不是集合类型,因为任何NSObject的后代都拥有它们,但这正是我正在寻找的文档。 –

+0

如果该属性绝对不是集合类型,那么可以考虑针对此完成提交一个错误 - 如果anObject不能包含其他对象,则对addAnObjectObject没有意义。 – Tim

+0

嗯,我想不是。我会做更多的研究并从那里开始。感谢您提供完美的信息。 :) –