What does this LLVM 1.5 warning mean? “protocol qu

2020-04-23 02:40发布

I've just tried compiling an iOS project using the the LLVM 1.5 compiler (included in XCode 3.2.3), and I got a lot of new warnings, including several like this:

protocol qualifiers without 'id' is archaic

For instance, this happens on lines like this:

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

Now, I think this is probably a "naming conventions" warning, but anyone know what it really means?

1条回答
劫难
2楼-- · 2020-04-23 03:07

Archaic: extremely old or extremely old-fashioned.

The warning means a protocol qualifier (i.e. <NSFetchedResultsControllerDelegate>) without an id is deprecated. The delegate parameter's type should look like:

- (id)initWithContext:(NSManagedObjectContext *)context
          coordinator:(NSPersistentStoreCoordinator *)coordinator
             delegate:(id<NSFetchedResultsControllerDelegate>)delegate;
       //              ^^
查看更多
登录 后发表回答