2010-06-22 20 views
1

我剛剛嘗試使用LLVM 1.5編譯器(包含在XCode 3.2.3中)編譯iOS項目,並且我得到了很多新的警告,包括幾個像這樣的:這個LLVM 1.5警告是什麼意思? 「沒有'id'的協議限定符是陳舊的」

protocol qualifiers without 'id' is archaic 

例如,這發生在這樣的臺詞:

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

現在,我認爲這可能是一個「命名約定」的警告,但任何人都知道它的真正含義?

回答

7

古體:extremely old or extremely old-fashioned

該警告表示不使用id的協議限定符(即<NSFetchedResultsControllerDelegate>)已棄用。代表參數的類型應如下所示:

- (id)initWithContext:(NSManagedObjectContext *)context 
      coordinator:(NSPersistentStoreCoordinator *)coordinator 
      delegate:(id<NSFetchedResultsControllerDelegate>)delegate; 
     //    ^^ 
相關問題