引っ越し後の日記はコチラです
tokoromのその他の日記
- vim関連: vimまっしぐら★
- それ以外: 寄り道ばかりの お勉強日記★
2009-05-11
コンテナにオブジェクトを追加したときの参照カウンタ
|コンテナ(NSArrayとかNSDictionary)にオブジェクトを突っ込んだとき、そのオブジェクトをreleaseすべきかどうかというのをちょっと迷ったりしたのですが、結論としてはreleaseしないといかんということが分かりました。
しかし、きっちり理解できていないと気持ち悪い部分ではあるんで、retainCountをログ出しして実際に確認しておきました。
// objにメモリ確保 id obj = [NSObject alloc]; NSLog( @"1:alloc -> %d", [obj retainCount] ); // Arrayを作り、そこにobjを追加する NSMutableArray* array = [[NSMutableArray alloc] init]; [array addObject:obj]; NSLog( @"2:Array:addObject -> %d", [obj retainCount] ); // Dictionaryを作り、そこにobjを追加する NSMutableDictionary* dictionary = [[NSMutableDictionary alloc] init]; [dictionary setObject:obj forKey:@"key1"]; NSLog( @"3:Dictionary:setObject -> %d", [obj retainCount] ); // objの参照カウンタをデクリメント [obj release]; NSLog( @"4:release -> %d", [obj retainCount] ); // NSMutableArrayの解放 [array release]; NSLog( @"5:Array:release -> %d", [obj retainCount] ); // NSMutableDictionaryの解放 [dictionary release];
この実行結果は以下のとおり。
1:alloc -> 1 2:Array:addObject -> 2 3:Dictionary:setObject -> 3 4:release -> 2 5:Array:release -> 1
おー、コンテナにaddした時点で、きっちり参照カウンタインクリメントされてますね^^
これで安心してreleaseできます(笑)
onkkluloht
2014/01/20 01:28
hphscjqipof.efw, <a href="http://www.ggejrykdlj.com/">arktrovrzv</a>
wdbxnjfift
2014/01/22 15:51
zhhhjjqipof.efw, <a href="http://www.jtiqcaltou.com/">wfsedcdwwu</a>
xmeyweiimx
2014/01/25 19:14
rdjyijqipof.efw, http://www.sopdjvpmqd.com/ ivadkeutub
jnspmfkdpt
2014/02/02 00:51
gfzlfjqipof.efw, <a href="http://www.vahmpzhlpf.com/">cxvrtfowan</a> , [url=http://www.sobvujilaj.com/]rauhienzkh[/url], http://www.goqfnqqmgt.com/ cxvrtfowan
- 43 http://iphone-dev.g.hatena.ne.jp/
- 5 http://reader.livedoor.com/reader/
- 2 http://d.hatena.ne.jp/tokorom/
- 1 http://www.google.co.jp/webhp?sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP265JP266
- 1 http://www.google.com/ig/gmailmax?mid=51
- 1 http://iphone-dev.g.hatena.ne.jp/diarylist
- 1 http://b.hatena.ne.jp/bookmarklist?url=http://iphone-dev.g.hatena.ne.jp/
- 1 http://b.hatena.ne.jp/t/iPhone?of=175
- 1 http://www.google.com/reader/view/?tab=qy
- 1 http://vim.g.hatena.ne.jp/tokorom/