我与这句话的一部分难倒:请帮忙协议代码,没有任何意义
@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