我正在设置一个名为“BHAccountBaseViewController”的基本视图控制器和另外两个从基本控制器继承一些基本功能的视图。
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
思考?这些是我的三个头文件
BHAccountBaseViewController
#import <UIKit/UIKit.h>
#import "BHFileManager.h"
@interface BHAccountBaseViewController : UIViewController
@end
BHAccountViewController
#import "BHAccountBaseViewController.h"
@interface BHAccountViewController : BHAccountBaseViewController<UITextFieldDelegate>
@end
BHCreateProfileViewController
#import "BHAccountBaseViewController.m"
@interface BHCreateProfileViewController : UIViewController <UITextFieldDelegate>
@property (strong, nonatomic) id user;
@end
如果我在最后一个文件上注释掉导入链接器错误就行了!但是我希望能够继承我的基础... ...想法?
非常感谢帮助!
答案 0 :(得分:1)
在上面给出的BHCreateProfileViewController的实现中,我发现代码看起来在第一行出错了。如何修复它如下:
#import "BHAccountBaseViewController.m"
到
#import "BHAccountBaseViewController.h"
我想知道为什么BHCreateProfileViewController继承自UIViewController而不是BHAccountBaseViewController。你能解释一下吗?
答案 1 :(得分:1)
这可能是由于保留周期死锁问题。你必须使用前向类声明,即你可以尝试@Class而不是#import。请参考以下内容:
Objective-C: Forward Class Declaration
这些可能有所帮助。
答案 2 :(得分:0)
在编译时,您的编译器实际上会查找您的接口文件而不是实现文件。即使.m文件不可用,编译器也不会打扰。因此,在导入时,您应该导入.h而不是.m。