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?
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;
// ^^
来源:https://stackoverflow.com/questions/3094124/what-does-this-llvm-1-5-warning-mean-protocol-qualifiers-without-id-is-archa