2

ビルドを実行しようとすると、「初期化要素はコンパイル時の定数ではありません」というエラーが表示されます。アレイが問題の原因であることが示されています。私のコードは次のとおりです。

@implementation XYZViewController 
//Array setup 
NSArray *example = @[@"X", @"Y", @"Z"];

@end

これは私のコードのすべてではありませんが、現在のところ、ここに完全なコードを表示する必要はありません。

4

2 に答える 2

2

ポイントは 、コンパイラがそれをof@[@"X", @"Y", @"Z"];へのメソッド呼び出しに変換するため、これは静的初期化子ではないということです。arrayWithObjects:count:NSArray

初期化された静的をメソッド呼び出しにすることはできず、もちろんコンパイラーはそれについて不平を言います。

配列を初期化したい場合は、実行時にメソッド内で実行できます。これを行うには、いくつかのオプションがあります。

すべてのインスタンスの配列を初期化したい場合は、デフォルトの初期化子内でそれを行うだけです (特定のクラスによって異なります)。

initializeクラス レベルで行う場合は、クラス メソッド内で行うことができます。

于 2013-03-27T21:25:32.130 に答える
1

このブロックで配列を宣言しようとしているため、エラーが表示されます。次のように試してください。

@implementation XYZViewController {
    //Array setup 
    NSArray *example ;
}

@end

viewDidLoad メソッドまたは this のような他の場所で配列値を割り当てます example = @[@"X", @"Y", @"Z"];

于 2013-03-26T09:38:51.243 に答える