2009-07-21 14 views
1

私はあなたが今、私が[astroids removeFromSuperview];使用しますが、それだけで画面上の画像を取り除きますが、削除しても、インスタンス自体がまだ存在する原因となり、NSMutableArrayからオブジェクトを削除するにはどのように思っていました。どのようにオブジェクトを配列から削除しますか?

+2

一般的な注意:オンラインでも、デベロッパーツール(ヘルプ>ドキュメント)にバンドルされている多くのドキュメントがあります。これは、特定のクラスの使用方法に関する基本的な質問に答える非常に良い方法です。 – smorgan

答えて

1

NSMutableArrayremoveObjectAtIndexメッセージが含まれています。
NSMutableArray documentation

+0

また 'removeObject:'、もしあなたが持っているものがオブジェクトであり、あなた自身の最初のインデックスを探したくなければ。 –

14

-removeFromSuperviewUIView、ないNSMutableArrayする方法です。あなたがそれを上の呼び出しているUIViewインスタンスもMSMutableArrayに保管されているようです。アレイ自体のオブジェクトを削除するには、NSMutableArrayのいずれかの方法を使用する必要があります。

、それはまた、問題のオブジェクトを所有し、他の場所での使用とは無関係に、それを保持しているので、別途配列にそれを除去する必要があります。オブジェクトを除去するための

NSMutableArrayの方法:

– removeAllObjects 
– removeLastObject 
– removeObject: 
– removeObject:inRange: 
– removeObjectAtIndex: 
– removeObjectsAtIndexes: 
– removeObjectIdenticalTo: 
– removeObjectIdenticalTo:inRange: 
– removeObjectsFromIndices:numIndices: 
– removeObjectsInArray: 
– removeObjectsInRange: 

あなたを想定http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/nsmutablearray_Class/index.html

0

はそのスーパーからビューを削除し、その後removeFromSuperviewがあなたにリリースメッセージを送信しないを参照してください。 (他のオブジェクトがそれを保持していなければ)すぐに解放されます。

代わりに、それは自動解放メッセージを送信します。これは、ビューが実際にはない、すぐにremoveFromSuperviewメッセージの後、実行ループの終了時にメモリから削除されますようになります。

関連する問題