xcode 4.6 および ios6.1 に更新した後、この新しいエラー「'objectType' がセレクターの一部としてではなく、前のパラメーターの名前として使用されています」が表示されます。私はこれを複数回取得します。何か案は?
PS: 表示される方法は、リバース ジオコーディング用のカスタム方法です。
-(void) getAddress: (NSString *) objectType: (CLLocationCoordinate2D) objectCoordinate
xcode 4.6 および ios6.1 に更新した後、この新しいエラー「'objectType' がセレクターの一部としてではなく、前のパラメーターの名前として使用されています」が表示されます。私はこれを複数回取得します。何か案は?
PS: 表示される方法は、リバース ジオコーディング用のカスタム方法です。
-(void) getAddress: (NSString *) objectType: (CLLocationCoordinate2D) objectCoordinate
これは、メソッド内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を確認してください。
それはすべて間隔についてです、ダーリン... @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
あなたのメソッドはセレクターをスペースで宣言しています、
-(NSString *)testMethod:(double)price :(BOOL)flag;
.h と .m はどちらも同じで等しいスペースであることに注意してください
メソッドを取得するときは、メソッドとその引数に注意してください。[self testMethod:4.5(スペース):TRUE] のように;