2014-02-12 42 views
1

我設置了一個名爲「BHAccountBaseViewController」的基本視圖控制器和兩個從基本控制器的某些基本功能繼承的其他視圖。多ViewController繼承導致Apple Mach-O鏈接器錯誤

    從「UIViewController的」
  1. 「BHAccountViewController」(實現UITextFieldDelegate)
  2. 「BHAccountBaseViewController」繼承並從「BHAccountBaseViewController」
  3. 最後繼承我有一個最近創建的類,我稱之爲「BHCreateProfileViewController」每一次當我只是簡單地將#import指令包含在「BHAccountBaseViewController」中以繼承此類由於APPLE MACH-O LINKER錯誤,Xcode無法編譯!

鐺:錯誤:連接命令,退出代碼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 

如果我註釋掉最後一個文件上的導入鏈接器錯誤是一種方式!但我希望能夠從我的基地繼承......思想?

幫助將不勝感激!

回答

1

在上面給出的BHCreateProfileViewController的實現中,我發現代碼看起來在第一行出錯。怎麼樣將它固定如下:

#import "BHAccountBaseViewController.m" 

#import "BHAccountBaseViewController.h" 

,我不知道爲什麼BHCreateProfileViewController來自到的UIViewController不BHAccountBaseViewController繼承。你能解釋一下嗎?

+0

我累了!甚至沒有注意到自動完成.m :(在這個omg上花了30分鐘! – user3300457

+0

@ user3300457無論如何,我的回答是否有用解決你的問題? –

+0

由於不正確的導入我試圖通過簡單地得到類從根視圖控制器繼承並註釋掉導入來解決問題。 – user3300457

0

在編譯時,編譯器實際上會查找您的接口文件而不是實現文件。即使.m文件不可用,編譯器也不打擾。因此,在導入時,您應該導入.h而不是.m。