ビルドを実行しようとすると、「初期化要素はコンパイル時の定数ではありません」というエラーが表示されます。アレイが問題の原因であることが示されています。私のコードは次のとおりです。
@implementation XYZViewController
//Array setup
NSArray *example = @[@"X", @"Y", @"Z"];
@end
これは私のコードのすべてではありませんが、現在のところ、ここに完全なコードを表示する必要はありません。
ビルドを実行しようとすると、「初期化要素はコンパイル時の定数ではありません」というエラーが表示されます。アレイが問題の原因であることが示されています。私のコードは次のとおりです。
@implementation XYZViewController
//Array setup
NSArray *example = @[@"X", @"Y", @"Z"];
@end
これは私のコードのすべてではありませんが、現在のところ、ここに完全なコードを表示する必要はありません。
ポイントは 、コンパイラがそれをof@[@"X", @"Y", @"Z"];
へのメソッド呼び出しに変換するため、これは静的初期化子ではないということです。arrayWithObjects:count:
NSArray
初期化された静的をメソッド呼び出しにすることはできず、もちろんコンパイラーはそれについて不平を言います。
配列を初期化したい場合は、実行時にメソッド内で実行できます。これを行うには、いくつかのオプションがあります。
すべてのインスタンスの配列を初期化したい場合は、デフォルトの初期化子内でそれを行うだけです (特定のクラスによって異なります)。
initialize
クラス レベルで行う場合は、クラス メソッド内で行うことができます。
このブロックで配列を宣言しようとしているため、エラーが表示されます。次のように試してください。
@implementation XYZViewController {
//Array setup
NSArray *example ;
}
@end
viewDidLoad メソッドまたは this のような他の場所で配列値を割り当てます example = @[@"X", @"Y", @"Z"];
。