我與這句話的一部分難倒:請幫忙協議代碼,沒有任何意義
@property(nonatomic, readonly) NSArray <id<NSFetchedResultsSectionInfo>>*sections
這個屬性屬於NSFetchedResultsController類。 儘管NSFetchedResultsSectionInfo是一個協議,id<NSFetchedResultsSectionInfo>
是一個必須符合NSFetchedResultsSectionInfo協議的對象類型。 id<NSFetchedResultsSectionInfo>
不是協議,因此將它們括在尖括號內 <id<NSFetchedResultsSectionInfo>>
是沒有意義的。 聲明NSArray <id<NSFetchedResultsSectionInfo>>
對我來說沒有意義,因爲如何使對象類型id成爲NSArray類的協議。有人可以對此有所瞭解嗎?謝謝。
感謝您的解釋。我非常感謝。我認爲NSArray> *部分是我錯過了一些新的語法。另一方面,爲什麼蘋果將@property(nonatomic,只讀)NSArray > *部分作爲屬性聲明。它給人的印象是這確實是協議中的實際財產聲明。 –
只需在協議聲明@property(nonatomic,readonly)NSArray *節中指明並且只是解釋NSArray的對象是id類型的NSFetchedResultsSectionInfo>就不會更清楚了。將所有內容放在一行中都會給人以實際聲明的印象。 –
有趣。從來沒有遇到過這個。 – cacau