時,這是我聲明我的數組:「初始元素不是常量」聲明數組
NSArray *atouts = [[NSArray alloc] arrayWithObjects:@"1",@"2",nil];
,但我發現:
初始值設定元素不是常數
那麼聲明靜態數組的最佳方法是什麼?
時,這是我聲明我的數組:「初始元素不是常量」聲明數組
NSArray *atouts = [[NSArray alloc] arrayWithObjects:@"1",@"2",nil];
,但我發現:
初始值設定元素不是常數
那麼聲明靜態數組的最佳方法是什麼?
你想要麼:
NSArray * atouts = [[NSArray alloc] initWithObjects:@"1", @"2", nil];
或者:
NSArray * atouts = [NSArray arrayWithObjects:@"1", @"2", nil];
編輯然而,真正的問題是,你不能初始化靜態數組是這樣的。您必須執行以下操作:
static NSArray * atouts = nil;
//in some method that's invoked early
atouts = [[NSArray alloc] initWithObjects:@"1", @"2", nil];
您確定在該行中出現錯誤嗎?因爲錯誤是關於C數組,AFAIK。無論如何,您需要使用[[NSArray alloc] initWithObjects:...]或[NSArray arrayWithObjects:...],而不是[[NSArray alloc] arrayWithObjects:...]來代替[[NSArray alloc]]。請注意,後者是自動發佈的。
是啊,它的那一行:( – 2010-10-16 21:49:16
嗯,仍然使用這兩行中的任何一行,它可能與我的頭文件有關? (\t NSArray * atouts;) – 2010-10-16 21:48:36
@Julz編輯答案 – 2010-10-16 22:00:52
感謝您查看它,但它現在錯誤是這樣的:「警告:數據定義沒有類型或存儲類」 - 「警告:在聲明中鍵入默認爲'int' 'atouts'「 - 」錯誤:'atouts'的衝突類型「 – 2010-10-17 20:42:17