在同一文件中调用返回类型为“void”的方法时出现问题

时间:2012-07-30 13:18:23

标签: iphone ios xcode4.3

在同一-(void)

中调用返回类型class的方法时出现问题

问题是:Instance method - someMethodName not found (return type defaults to 'id')

2 个答案:

答案 0 :(得分:1)

someMethodName文件中声明.h

答案 1 :(得分:0)

问题是Xcode无法找到该方法的声明。在最新版本的Xcode中,如果实现与您调用它的.m相同,则不需要为方法提供声明。 e.g:

//ExampleClass.m
@implementation ExampleClass
-(void)aMethod {
    [self anotherMethod]; //Xcode can see anotherMethod so doesn't need a declaration.
}

-(void)anotherMethod {
    //...
}
@end

但是在早期版本的Xcode中,您需要提供声明。您可以在@interface文件的.h中执行此操作:

//example.h
@interface ExampleClass : NSObject
-(void)anotherMethod;
@end

将声明放在.h中的问题是所有其他类都可以看到该方法,这可能会导致问题。要解决此问题,您可以在.m

中声明一个类继续
//ExampleClass.m
@interface ExampleClass ()
-(void)anotherMethod;
@end

@implementation ExampleClass
   //...
@end