这是我正在尝试做的事情:
我想将一些方法放入单独的 .h 和 .m 文件中,以便更好地了解我的代码。
所以基本上我有myViewController
我想用这个方法myReactionOnAnimationDidEnd:
作为一个类别来扩展的。
所以我在"myCustomClasses.h"
下面声明用我想要的方法扩展它:
#import "myViewController.h"
@interface myViewController (myReactionOnAnimationDidEnd)
- (void)myReactionOnAnimationDidEnd:(NSNotification *)aNotification;
@end
中的实现"myCustomClasses.m"
是:
#import "myCustomClasses.h"
#import "myViewController.h"
@implementation myViewController (myReactionOnAnimationDidEnd)
- (void)myReactionOnAnimationDidEnd:(NSNotification *)aNotification {
self.myLabel1.text = @"Test";
}
@end
编译器抛出构建失败错误“找不到'myViewController'的接口声明”
所以这是我的问题:
第一个奇怪的事情是,如果我对 UIViewController 而不是 myViewController 执行完全相同的操作,那么一切正常。但是既然 myViewController 是 UIViewController 的子类,为什么它不能也适用于 myViewController(@interface iSnahViewController : UIViewController)?
另一个奇怪的事情是,如果我完全跳过@declaration,“myCustomClasses.m”中的@implementation 工作得很好。现在怎么可能??
谢谢你们!非常感谢任何帮助!汉斯
现在,有趣的是,即使我使用 New File -> ObjC - Category Template 创建类别,也会出现同样的构建错误。它基本上创建以下两个文件:
在头文件中:
#import "myViewController.h"
@interface myViewController (myCategories) //<-- "Cannot find interface declaration for 'myViewController'"
@end
并使用 .m 文件
#import "myViewController+myCategories.h"
@implementation myViewController (myCategories)
@end
这已经足以从上面提出错误。