Что означает это предупреждение LLVM 1.5? "Спецификаторы протокола без 'id' являются архаичными" - PullRequest
1 голос
/ 22 июня 2010

Я только что попытался скомпилировать проект iOS с использованием компилятора LLVM 1.5 (включен в XCode 3.2.3), и я получил много новых предупреждений, включая несколько таких как:

protocol qualifiers without 'id' is archaic

Например, это происходит в таких строках:

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

Теперь я думаю, что это, вероятно, предупреждение о "соглашениях об именах", но кто-нибудь знает, что это на самом деле означает?

1 Ответ

7 голосов
/ 22 июня 2010

Архаичный: очень старый или очень старомодный .

Предупреждение означает, что квалификатор протокола (т. Е. <NSFetchedResultsControllerDelegate>) без id устарел. Тип параметра делегата должен выглядеть следующим образом:

- (id)initWithContext:(NSManagedObjectContext *)context
          coordinator:(NSPersistentStoreCoordinator *)coordinator
             delegate:(id<NSFetchedResultsControllerDelegate>)delegate;
       //              ^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...