Hatena::Groupiphone-dev

f-shinの日記 このページをアンテナに追加 RSSフィード

ああああ
 | 

2008-08-15

addObjectとか、どことなく親しみ深いメソッドを見ると

21:57 | addObjectとか、どことなく親しみ深いメソッドを見ると - f-shinの日記 を含むブックマーク はてなブックマーク - addObjectとか、どことなく親しみ深いメソッドを見ると - f-shinの日記 addObjectとか、どことなく親しみ深いメソッドを見ると - f-shinの日記 のブックマークコメント

ついつい、

mutableArray.addObject(btn);

とか書いてしまい、エラーから抜け出せなくなる初心者です。

正解は、

[mutableArray addObject:btn];

どえす。

faultierfaultier2008/11/02 23:43autoreleaseが呼ばれてるのは、"「そこから次に渡した実装が見えないメソッド」の中"じゃなくて、
値が返ってくる前です。例えばNSStringだったら、[NSString string]のstringメソッドの中。
で、NSAutoreleasePoolも用意してないのにどこにあるんだろ、って言うと、実際に自分が書いた部分に処理が来るより前に用意されて、終わった後に破棄されてます。
順番で言うと、
・イベント起きる
・NSAutoreleasePool作られる
・自分の書いた部分に処理が来る
・NSStringのstringメソッド呼ぶ
・autorelease済みのNSStringオブジェクトが返される
・続きの処理をする
・NSAutoreleasePoolが破棄されて、そんとき一緒にNSStringのオブジェクトも消える
・イベント終わる
トラバ飛んでると思いますが、http://blog.livedoor.jp/faulist/archives/1051536.htmlにそれに絡んだ話も書いてますんで、良かったら見てみて下さい。

 |