質問

UIImageViewの複数のインスタンスをNSMutableDictionarのNSMutableArrayに追加しようとしています。

これを行って、戻ってUIImageView参照を引き出し、これらの画像の位置を変更できるようにします。

辞書から情報を引き出すと、nullポインタのみが返されるようです...

これを実装する方法に関する提案はありますか? n個の画像のリストを保存し、後で参照できるようにする簡単な方法があるかもしれません。

// (for i = 0 to 30)

UIImageView *newBall = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ball.png"]];
newBall.center = CGPointMake (arc4random() % 280 + 20, arc4random() % 440 + 20);
[self.view addSubview:newBall];

NSMutableDictionary *dictBall = [[[NSMutableDictionary alloc] init] autorelease];
[dictBall setValue:newBall forKey:@"imgBall"];

// the dictionary is then added to the array

[newBall release];

// end for loop

(移動の変化率のdy / dx値も保存するため、辞書を使用しています)

役に立ちましたか?

解決

上記のコードは私には問題ないようです。

ループを通して毎回新しいNSMutableDictionary * dictBallを作成しています。ループが存在した後にそれを保持するものはありますか?あなたのコードからはそれのように見えません。これがオブジェクトがnilである理由かもしれません。

この行をforループの外側/前に移動すると、問題ないはずです。

また、UIViewImageを辞書に保存してもよろしいですか? ID(タグに基づく)と座標(CGPointまたはCGRect)だけではないのはなぜですか?このように、タグを使用して、タグを介してUIimageViewを見つけ、必要な場所に移動できますか?賢明なメモリの方が安価です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top