12

xcode 4.6 および ios6.1 に更新した後、この新しいエラー「'objectType' がセレクターの一部としてではなく、前のパラメーターの名前として使用されています」が表示されます。私はこれを複数回取得します。何か案は?

PS: 表示される方法は、リバース ジオコーディング用のカスタム方法です。

-(void) getAddress: (NSString *) objectType: (CLLocationCoordinate2D) objectCoordinate
4

3 に答える 3

24

これは、メソッド内objectTypeのオブジェクトの名前でありNSString、メソッド名の一部ではないことをobjectType: (CLLocationCoordinate2D) objectCoordinate示しています。通常、メソッド名の一部を示すものとして使用しないでください。

理想的には変更する必要があります、

-(void) getAddress: (NSString *) objectType: (CLLocationCoordinate2D) objectCoordinate

より読みやすく、

-(void) getAddress:(NSString *)objectType coordinate:(CLLocationCoordinate2D) objectCoordinate;

上記のエラーはobjectType、メソッド定義の次のパラメータの間にスペースを入れることでも修正できます(例:-)-(void)getAddress:(NSString *)objectType : (CLLocationCoordinate2D)objectCoordinate。の後のスペースに注意してくださいobjectType

アップデート:

コメントの質問に答えるには、以下の行を使用してこれらの警告を抑制します。

#pragma clang diagnostic ignored "-Wmissing-selector-name"

これをpchファイルに追加します。これがライブラリからのものである場合にこれが機能するかどうかはわかりませんが、試してみることができます。詳細については、このclang-trunkを確認してください。

于 2013-01-29T07:20:24.203 に答える
5

それはすべて間隔についてです、ダーリン... @Martin Rが言ったように:これは、議論の余地があるほど良い質問です...

「2 番目のパラメーターの前にスペースを挿入するだけで十分です。」

ここで、Xcodeが地獄を黙らせるのに十分な意味..

その奇妙な構文トリビアの精神で... これは私のお気に入りの Cocoa ヘッダー ファイルです。はい、これらはすべて有効なメソッド名です。

@interface NSString (JASillyString)
-:a;
-:a :b;
-:a :b :c;
-:a :b :c :d;
-:a :b :c :d :e;
-:a :b :c :d :e :f;
-:a :b :c :d :e :f :g;
-:a :b :c :d :e :f :g :h;
-:a :b :c :d :e :f :g :h :i;
-:a :b :c :d :e :f :g :h :i :j;
-:a :b :c :d :e :f :g :h :i :j :k;
-:a :b :c :d :e :f :g :h :i :j :k :l;
-:a :b :c :d :e :f :g :h :i :j :k :l :m;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w :x;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w :x :y;
-:a :b :c :d :e :f :g :h :i :j :k :l :m :n :o :p :q :r :s :t :u :v :w :x :y :z;
@end
于 2013-03-01T00:14:17.360 に答える
0

あなたのメソッドはセレクターをスペースで宣言しています、

-(NSString *)testMethod:(double)price :(BOOL)flag;

.h と .m はどちらも同じで等しいスペースであることに注意してください

メソッドを取得するときは、メソッドとその引数に注意してください。[self testMethod:4.5(スペース):TRUE] のように;

于 2013-02-20T12:19:13.477 に答える