2012-08-22 40 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

嗯,我想不是。我會做更多的研究並從那裏開始。感謝您提供完美的信息。 :) –