ios - xcode教程 - xcode是什么




升级到xcode 4.6和iOS 6.1后出现错误“用作前一个参数的名称而不是选择器的一部分” (2)

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

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

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

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

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

更新:

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

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

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





ios6.1