升级到xcode 4.6和iOS 6.1后出错“,用作前一个参数的名称而不是select器的一部分”

更新到xcode 4.6和ios6.1之后,我得到这个新的错误“'objectType'作为前一个参数的名称,而不是作为select器的一部分 ”。 我多次得到这个。 有任何想法吗?

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和next param之间的空格来解决(例如: – -(void)getAddress:(NSString *)objectType : (CLLocationCoordinate2D)objectCoordinate )。 注意objectType之后的空格。

更新:

要回答评论中的问题,您可以使用下面的代码来抑制这些警告:

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

把这个添加到你的pch文件中。 我不知道这是否适用于你的情况,它来自图书馆,但你可以尝试一下。 查看这个铿锵的主干更多细节。

这是所有关于间距,亲爱的 …作为@马丁R说:这个,可辩论的更好的问题 …

“在第二个参数之前插入一个空格就足够了”

足够的意义,在这里,Xcodeclosures了地狱..

在那个古怪的琐事中,这是我最喜欢的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 

你的方法是声明select器使用空格,

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

注意提到.h和.m两者是相同和相等的空间

当回顾方法,那个时候小心方法和它的论点。 像[self testMethod:4.5(space):TRUE];