2016-06-29 204 views
0

我對Object-C編程非常陌生並獲得了一項任務。在構建時,由於重複的符號,構建失敗,鏈接器錯誤。我做了我自己的分析似乎是它打破了,因爲,在類文件中的一個,我們有這樣的:Object-C鏈接器命令失敗,退出代碼爲1

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return kCellHeight; 
} 

而在另一個類,我們有這樣的:

self.contentView.frame = CGRectMake(5,5,[[UIScreen mainScreen] applicationFrame].size.width-10,kCellHeight - 5); 

,其中作爲kCellHeight已被定義在一個界面上:

NSInteger const kCellHeight = 100; 

這是正確的分析嗎?

發展ENV:

的XCode:7.3.1 目標SDK:7.1

在此先感謝.. -S

回答

0

也許(雖然它會更容易判斷您是否給編譯器錯誤)。我認爲當你說「kCellHeight已經在接口中定義」時,你的意思是在頭文件中?常量應該是在頭文件中聲明爲,但在執行文件中定義了。像這樣:

/* in .h file */ 
extern const NSInteger kCellHeight; 

/* in .m file */ 
const NSInteger kCellHeight = 100; 

如果在一個頭文件中定義,每當該頭文件被導入kCellHeight將被定義,這將導致在多個定義(和接頭錯誤)。

+0

是的,我想將接口定義爲.h和類作爲.m文件。現在回到你的觀點,我沒有看到.m文件中的聲明。我會在幾分鐘內嘗試。並分享我的發現。謝謝@mipadi。 – sahaS

+0

@sahaS:你只需要* 1 *'.m'文件中的定義。 – mipadi

+0

是的,它的工作,非常感謝@mipadi – sahaS

相關問題