我刚刚尝试使用LLVM 1.5编译器(包含在XCode 3.2.3中)编译iOS项目,我收到了很多新的警告,包括以下几个:
protocol qualifiers without 'id' is archaic
例如,这发生在这样的行上:
- (id)initWithContext:(NSManagedObjectContext *)context
coordinator:(NSPersistentStoreCoordinator *)coordinator
delegate:(<NSFetchedResultsControllerDelegate>)delegate;
现在,我认为这可能是一个“命名约定”警告,但是有人知道它的真正含义吗?
答案 0 :(得分:7)
古代:extremely old or extremely old-fashioned。
警告意味着不推荐使用<NSFetchedResultsControllerDelegate>
的协议限定符(即id
)。委托参数的类型应如下所示:
- (id)initWithContext:(NSManagedObjectContext *)context
coordinator:(NSPersistentStoreCoordinator *)coordinator
delegate:(id<NSFetchedResultsControllerDelegate>)delegate;
// ^^