1

我刚刚尝试使用 LLVM 1.5 编译器(包含在 XCode 3.2.3 中)编译一个 iOS 项目,我收到了很多新警告,其中包括如下几个:

protocol qualifiers without 'id' is archaic

例如,这发生在这样的行上:

- (id)initWithContext:(NSManagedObjectContext *)context
          coordinator:(NSPersistentStoreCoordinator *)coordinator
             delegate:(<NSFetchedResultsControllerDelegate>)delegate;

现在,我认为这可能是一个“命名约定”警告,但有人知道它的真正含义吗?

4

1 回答 1

7

Archaic:非常古老或非常老式的

警告意味着不推荐使用不<NSFetchedResultsControllerDelegate>带 an 的协议限定符(即 )id。委托参数的类型应如下所示:

- (id)initWithContext:(NSManagedObjectContext *)context
          coordinator:(NSPersistentStoreCoordinator *)coordinator
             delegate:(id<NSFetchedResultsControllerDelegate>)delegate;
       //              ^^
于 2010-06-22T14:35:52.687 回答