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

古語法:非常に古いまたは非常に古風な

警告は、がないプロトコル修飾子(つまり<NSFetchedResultsControllerDelegate>idが非推奨になることを意味します。デリゲートパラメータのタイプは次のようになります。

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