2012-04-03 9 views
8

私は次の行に件名の警告を取得していますが:警告:未実装セレクターlocalizedCaseInsensitiveCompare

NSSortDescriptor * sort = [ [NSSortDescriptor alloc] initWithKey:@"name" 
           ascending:YES 
            selector:@selector(localizedCaseInsensitiveCompare:) ]; 

そして私は常にその警告を取得できませんでした。つまり、コンパイルの設定が変更されたために、警告が表示され始めたばかりです。私はここでタイプミスは見ません。これは私が多くの例で見たようなコードに似ています。私は実行時例外を見ていないよ。しかし、私は警告が好きではありません。誰もこれを見た?何がそれを引き起こしているのでしょうか?

答えて

14

-Wselectorをオンにしましたか? (「Selectorの複数定義タイプ」とも呼ばれます)。この警告はFoundationとの互換性がないため、オンにしないでください。それは "純粋な" Objective-Cで理にかなっているために存在します。 Objective-Cの中には、書くことが多い(つまり、Cocoaを使用しているもの)ものはありません。

警告は、「宣言されていないセレクタ」と呼ばれる-Wundeclared-selectorです。

GCCの警告の完全なリストと、私のShared.xcconfigファイルでそれらをオンまたはオフにするかどうかをまとめました。もう少し最新のvery helpful bestiary compiled by Jean-David Gadinaもあります。

+0

それをしました。ありがとう。 – DRVic

+0

こんにちは@ロブネイピア、私はちょうどxcode 5に更新され、 "Selector not found"という警告が表示されています。しかし、まだ私は警告を得る。じゃあ何をすればいいの。 – Ranjit

+0

これは、この質問とは異なる警告です。アップグレード後に警告が表示された場合は、削除された方法を使用していることが示唆されます。使用しているメソッド、使用しているSDK、正確な警告(実際にメソッドが実際に存在することを確認することから始めますが)の詳細については、新しい質問を開く必要があります。 –

関連する問題