我想在我的viewcontroller
中的自定义类中使用自定义方法//Viewcontroller.h
#import "Class1.h"
//Class1.h
//#import "Class1+Category.h" // Deemed unnecessary in comments below.
@interface Class1: NSObject
-(void)doSomething;
@end
//Class1.m
#import "Class1.h"
@implementation Class1
-(void)doSomething{
NSLog("In doSomething");
}
@end
现在我想要一个Class1的类别方法。
//Class1+Category1.h
#import "Class1.h"
@interface Class1 (Category1) // ERROR : Cannot find interface declaration
-(void)doAnotherThing;
@end
//Class1+Category1.m
#import "Class1+Category.h"
@implementation Class1 (Category1)
-(void)doAnotherThing{
NSLog(@"Did Another thing");
}
@end
最后 - 在我的viewcontroller.m中,我看到了doSomething方法,但没有看到doAnother的东西
//viewcontroller.m
Class1 *myClass1 = [[Class1 alloc]init];
[Class1 doSomething]; //Works great!
[Class1 doAnotherThing]; //Not recognized
我已将-all_load添加到目标设置中。我没有想法..我使用@class?我得到'找不到接口声明'错误
答案 0 :(得分:4)
您的类和类别乍一看似乎是正确的,但您的控制器需要导入Class1 + Category.h。也许这就是你错过的?