我在嘗試實例化單例時遇到了鏈接器命令失敗,退出代碼1(使用-v查看調用)錯誤。在Objective-C中使用Singleton時出現鏈接器錯誤
這是我一直在使用,使我班一個單身的代碼:
.H
@interface CoursesManager : NSObject
{
}
+ (id)SharedInstance;
@end
.M
@implementation CoursesManager
+ (id)SharedInstance
{
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
@end
這該是多麼我已經使用它在其他類:
coursesManager = [CoursesManager SharedInstance];
在查看了一下之後,似乎只是在其他.m文件中導入該文件會導致鏈接器錯誤。我很困惑,可能是什麼原因造成的。任何幫助,將不勝感激。
僅供參考,我使用Xcode 4.3.3。是
編輯錯誤的全面意見如下:
LD:重複的符號_MAX_COURSES在../Objects-normal/armv7/CourseEditorViewController.o和... /對象正常/的ARMv7/CourseSelectionViewController .O用於建築的ARMv7 鐺:錯誤:連接命令,退出代碼1失敗(使用-v看到調用)
以上@interface CoursesManager,我已經聲明瞭兩個的const int變量,MAX_COURSES和MAX_HOLES。
能否請您提供錯誤的全部內容? –
當然可以。我剛剛編輯了這個問題。 – rkeller
而這是我的問題。將const int變量更改爲#define修復了鏈接器錯誤。我不確定爲什麼,但我很高興它已經修復。 現在我應該怎麼處理這個問題?保持原樣?去掉它?回答我自己的問題?什麼是這樣的標準程序? – rkeller