※ ChatGPTを利用し、要約された質問です(原文:可変長配列の初期化)
可変長配列の初期化はできる?エラーの解決方法を教えてください
2014/07/27 22:54
このQ&Aのポイント
iOSでマップアプリを開発している際に、NSMutableArrayからデータを呼び出してCustomAnnotationクラスの初期化を行いたいと思っています。しかし、for文を使用して複数の初期化を行おうとするとエラーが発生します。エラーメッセージは「Variable-sized object may not be initialized」と出力されます。
このエラーは、可変長配列の初期化ができないことを示しています。つまり、for文や配列のインデックスを使用して可変長配列を初期化することはできないのです。
解決策としては、可変長配列の代わりにNSMutableArrayを使用する方法があります。NSMutableArrayは可変長であり、要素を追加・削除することができます。そのため、for文を使用して複数の要素を追加することが可能です。具体的なコード例としては、NSMutableArrayのインスタンスを作成し、for文内で要素を追加する方法です。
いつもお世話になっております。
iOSで開発を勉強中の者です。
マップアプリを開発しており、NSMutableArrayからデータを呼び出して以下のようにCustomAnnotationクラスの初期化を行っていました。
CustomAnnotation *Pin1 = [[CustomAnnotation alloc] initWithLocationCoordinate:CLLocationCoordinate2DMake(numberToDouble(Latitude[1]), (numberToDouble(Longitude[1])) title:Title[1] subtitle:Subtitle[1]];
これを、for文を使って複数一度に初期化を行おうとしたのですが、エラーが出てしまいました。
コードは下のようになっています。
for(int i=0; i<10; i++) {
CustomAnnotation *Pin[i] = [[CustomAnnotation alloc] initWithLocationCoordinate:CLLocationCoordinate2DMake(numberToDouble(Latitude[i]), (numberToDouble(Longitude[i]))) title:Title[i] subtitle:Subtitle[i]];
}
Variable-sized object may not be initialized と出ているのですが、可変長配列の初期化はできないのでしょうか・・・。
またできるとしたらどのような方法があるのでしょうか。
どうかよろしくお願いします。
質問の原文を閉じる
質問の原文を表示する
お礼
お礼が遅くなり申し訳ありません。 丁寧に回答していただきありがとうございます。 ご指摘の通り、自分自身の知識不足から来るミスです。 これから勉強して参ります。 いただいたサンプルや、他サイト様の情報から何とかやりたい動きをさせることができました。 ありがとうございました。