いつもお世話になっております。
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 と出ているのですが、可変長配列の初期化はできないのでしょうか・・・。
またできるとしたらどのような方法があるのでしょうか。
どうかよろしくお願いします。
No.1ベストアンサー
- 回答日時:
なにか問題が発生したとき、その問題の原因が自分自身にあると、最初に思う人間は、むしろ少数であって、コンパイラの欠陥だとか、言語仕様の欠陥と考えたがるのが多数派だというのは、理解できます。
たしかに私自身にもそういう傾向はあります。しかしそれは人間の心理の話であって、現実世界の事実は、コンパイラや言語仕様に原因を認められるケースはほとんどなく、99.9%は人為ミスです。for(int i=0; i<10; i++) {
CustomAnnotation *Pin[i] = [[CustomAnnotation alloc]
~~~~~
こういう書式はありえません。
サンプルを示します。
NSMutableArray *testArray = [NSMutableArray array];
for (int i = 0; i < 10; i++) {
testArray[i] = [NSNumber numberWithInt: i + 1];
}
for (int i = 0; i < 10; i++) {
NSLog(@"%d", [testArray[i] intValue]);
}
これはモダンな書き方で、従来の書式はこちら。
NSMutableArray *testArray = [NSMutableArray array];
for (int i = 0; i < 10; i++) {
[testArray addObject: [NSNumber numberWithInt: i + 1]];
}
for (int i = 0; i < 10; i++) {
NSLog(@"%d", [testArray[i] intValue]);
}
以上を参考にしてください。
お礼が遅くなり申し訳ありません。
丁寧に回答していただきありがとうございます。
ご指摘の通り、自分自身の知識不足から来るミスです。
これから勉強して参ります。
いただいたサンプルや、他サイト様の情報から何とかやりたい動きをさせることができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- ノートパソコン なかなかに酷い状況です。ノートパソコンのPINを忘れてしまいました。「PINを忘れた」を押してアカウ 2 2023/02/18 15:32
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
比較回数と交換回数表示について
-
複数桁10進数の*桁目だけを抽出...
-
nCmの関数
-
構造体の勉強中です 合計点の高...
-
C言語 配列と関数の練習問題
-
[C言語] 関数を利用する計算
-
実数の整数部,小数部の取得
-
C言語での引数の省略方法
-
数字列を3桁ごとにカンマで区切...
-
アスタリスクでダイヤ型を作る
-
覆面算のプログラムが分かりません
-
C言語の基礎 . 2乗値の差につ...
-
c言語
-
プログラミング
-
【C++】関数ポインタの使い方
-
毎回違う乱数を生成するにはど...
-
if と配列の組み合わせ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報