ios objective-c xcode xcode4.6 ios6.1

Error después de actualizar a xcode 4.6 y iOS 6.1 "utilizado como el nombre del parámetro anterior en lugar de como parte del selector"



objective-c xcode4.6 (3)

Después de actualizar a xcode 4.6 y ios6.1, obtengo este nuevo error "''objectType'' utilizado como el nombre del parámetro anterior en lugar de como parte del selector ". Lo entiendo varias veces ¿Algunas ideas?

PD: El método que se muestra es uno personalizado para la geocodificación inversa.

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


Dice que objectType es el nombre del objeto NSString en su método y no forma parte del nombre del método y no debe usarse como objectType: (CLLocationCoordinate2D) objectCoordinate que normalmente denota una parte del nombre del método.

Idealmente deberías cambiar,

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

a una más legible,

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

El error anterior también se puede solucionar colocando un espacio entre objectType y next param en la definición del método (Por ejemplo: - -(void)getAddress:(NSString *)objectType : (CLLocationCoordinate2D)objectCoordinate ). Tenga en cuenta el espacio después de objectType .

Actualizar:

Para responder la pregunta en los comentarios, puede usar la siguiente línea para suprimir estas advertencias:

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

Agregue esto en su archivo pch. No estoy seguro de si esto funcionará para su caso que proviene de la biblioteca, pero puede probarlo. Consulte este clang-trunk para más detalles.


Se trata del espaciado, cariño ... como @Martin R dijo: esta, discutiblemente MEJOR pregunta ...

"Es suficiente insertar un espacio antes del segundo parámetro".

Suficiente significado, aquí, que Xcode cierra el infierno ...

En el espíritu de esa extraña pieza de trivia sintáctica ... aquí está mi archivo de cabecera favorito de Cocoa, EVER. y sí, esos son todos los nombres de métodos válidos, jeje.

@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


Su método está declarando el selector Con espacios,

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

Nota mencionar .h y .m ambos son espacios iguales e iguales

Cuando recuperamos el método, ese momento es cuidadoso con el método y sus argumentos. como [self testMétodo: 4.5 (espacio): VERDADERO];