2011-06-22 151 views
0

我有下面的代碼行:如何擺脫警告有關:indexForInsertingObject:sortedUsingBlock:

int insertIdx = (int)[self.itemsToDisplay indexForInsertingObject:item sortedUsingBlock:^(id a, id b) { 
     MWFeedItem *item1 = (MWFeedItem *) a; 
     MWFeedItem *item2 = (MWFeedItem *) b; 
     return [item1.date compare:item2.date]; 
    }]; 

但XCode的給我就可以瞭如下警告:

NSMutableArray' may not respond to '-indexForInsertingObject:sortedUsingBlock: 

如何擺脫這個警告?並且我可以知道在SDK中定義了哪種方法嗎? 在此先感謝這麼多...

+0

這個項目是顯示一個正常的NSMutableArray還是你擴展NSMutableArray的? – Manuel

+0

@ dragon112是的這是一個正常的NSMutableArray – JaHelia

回答

4

-indexForInsertingObject:sortedUsingBlock:不是官方公開SDK的一部分。由於看起來您尚未聲明並實施包含該方法的NSMutableArray上的類別,因此您可以根據this blog post by Jayway Team編寫一個類別。完成這些之後,只需要導入聲明類別的頭文件即可。

+0

謝謝你的回答,它已經爲我工作,警告已被壓制。但我想知道該方法在運行時如何在沒有問題的情況下工作,雖然它沒有在SDK中定義,這是否意味着它已經在我的項目的一些頭文件中定義了(我有很多這樣的.h文件被導入)? – JaHelia

+0

如果它在運行時工作,它可能是SDK中的私有方法,也可能是您項目的一部分。嘗試在所有項目文件中搜索「@interface NSArray」和「@interface NSMutableArray」。 – 2011-06-22 09:51:18

+0

是的,我發現它在其中一個文件中...謝謝你的親切幫助:) – JaHelia

1

禁用警告,一個文件的補充一點:

#pragma GCC diagnostic ignored "-Wwarning-flag" 

應該忽略所有的警告。但是,問題是您不會在該文件中看到任何警告。即使他們是合法的。