更新到xcode 4.6和ios6.1后,我得到这个新错误“'objectType'用作上一个参数的名称,而不是作为选择器的一部分”。我多次得到这个。有什么想法吗?
PS:它显示的方法是反向地理编码的自定义方法。
-(void) getAddress: (NSString *) objectType: (CLLocationCoordinate2D) objectCoordinate
答案 0 :(得分: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文件中添加它。我不确定这是否适用于你来自图书馆的情况,但你可以尝试一下。查看this clang-trunk了解详情。
答案 1 :(得分:5)
所有关于间距,亲爱的 ......正如@Martin R所说的那样:debateably BETTER question ......
“在第二个参数之前插入一个空格就足够了。”
这里有足够的意义,Xcode关闭了地狱......
本着奇怪的合成琐事的精神......这是我最喜欢的Cocoa头文件,EVER。是的,这些都是有效的方法名称,呵呵。
@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
答案 2 :(得分:0)
您的方法是使用空格声明选择器
-(NSString *)testMethod:(double)price :(BOOL)flag;
注意提及.h和.m都是相同且相等的空格
当采用反向方法时,那个时候要小心方法及其论点。 喜欢 [self testMethod:4.5(空格):TRUE];