我看到了蘋果網站是這樣使用以下內容創建對象意味着什麼:id <class> instanceName?
id <NSFetchedResultsSectionInfo> sectionInfo = ...
一些代碼這是如何不同以下?
NSFetchedResultsSectionInfo *sectionInfo = ...
我對NSFetchedResultsSectionInfo本身並不感興趣,而是它聲明的方式。
非常感謝!
Tristan
我看到了蘋果網站是這樣使用以下內容創建對象意味着什麼:id <class> instanceName?
id <NSFetchedResultsSectionInfo> sectionInfo = ...
一些代碼這是如何不同以下?
NSFetchedResultsSectionInfo *sectionInfo = ...
我對NSFetchedResultsSectionInfo本身並不感興趣,而是它聲明的方式。
非常感謝!
Tristan
NSFetchedResultsSectionInfo
是一個協議。 id是一種聲明通用對象的方法,並且id <NSFetchedResultsSectionInfo>
聲明瞭一個必須遵守NSFetchedResultsSectionInfo
協議的通用對象。
該語法用於指示被引用的對象符合特定的協議。請參閱Apple's documentation關於Objective-C的這一方面,特別是「遵守協議」部分及其後的章節。
所以要更明確一點:`NSFetchedResultsSectionInfo * sectionInfo`不會是一個有效的聲明,因爲協議不是一個類型。 – Chuck 2011-02-04 05:12:16