eventPoints = [[NSMutableArray array] retain];
"retain"キーワードは、 "array"とは何をしていますか? 「配列」はどこにも定義されていません。誰かがObjective-Cのこの1行のコードを説明できますか?
また、eventPointsがNSMutableArrayとして宣言されました。
私はただ勉強しようとしています。おかげ
eventPoints = [[NSMutableArray array] retain];
"retain"キーワードは、 "array"とは何をしていますか? 「配列」はどこにも定義されていません。誰かがObjective-Cのこの1行のコードを説明できますか?
また、eventPointsがNSMutableArrayとして宣言されました。
私はただ勉強しようとしています。おかげ
は、この質問をチェックアウト、私は尋ねた:iPhone memory management (with specific examples/questions)
をそれはあまりにもこれのこつを得るために私にしばらく時間がかかりました。お役に立てれば!
EDIT:[NSMutableArray array]
が何をするかについては、NSArray
上のドキュメントによれば、このことを行います。「空の配列を作成し、返します。」 NSArray
の可変サブクラスによって使用されます(NSMutableArray
など)。基本的には、それは同じことです:[[[NSMutableArray alloc] init] autorelease]
(または何か本当に似ています)。 autorelease
dなので、変数を保持するにはretain
に電話する必要があります。
1)「保持」キーワードは「配列」とは何をしていますか?
あなたが知っているように、objective-Cはメモリ管理のための参照カウントを使用しています。 「保持」は、すべてのポイントで1をインクリメントします。
2)「配列」はどこにも定義されていません。
「配列」はNSArrayで定義されています。 NSMutableArrayはNSArrayのサブクラスなので、NSMutableArrayはNSArrayで定義された関数を使用できます。 "array"は、空の配列を作成して返すクラスメソッドです。
allocic、copy、retain、達成のいずれかを明示的にインクリメントするには、次の4つの方法があります。 これらのいずれも使用せずに空の配列を作成するため、手動で "retain"を1増やします。したがって、将来、[すべてのポイントリリース]を解除してそれを割り当て解除する必要があります。
詳細な回答ありがとうございます – jini