retainCountの不思議
こんなコードをシミュレータで実行してみた。
cellはUITableViewCellのインスタンスだと思いねぇ。
NSLog(@"(1)cell.textLabel.text:%d", [cell.textLabel.text retainCount]);
NSString *title = [[NSString alloc] initWithFormat:@"%@", aPage.title];
NSLog(@"(2)title:%d", [title retainCount]);
cell.textLabel.text = title;
NSLog(@"(3)cell.textLabel.text:%d", [cell.textLabel.text retainCount]);
[title release];
NSLog(@"(4)title:%d", [title retainCount]);
NSLog(@"(4)cell.textLabel.text:%d", [cell.textLabel.text retainCount]);
で、これが結果
(1)cell.textLabel.text:0
(2)title:1
(3)cell.textLabel.text:3
(4)title:2
(4)cell.textLabel.text:3
(3)のところおかしくない? なぜ3なんだろう。
retainCountが1のtitleをcell.textLabel.textに突っ込んだら、retainされて2になりそうなもんなんだけど。
そして、(4)では直前に [title retainCount]); ってしてるのに、retainCountが減っていない。
これってどうしてだろう。
なんか納得できなくて気持ち悪い......。
うーん、うーん。
投稿者 CHEEBOW : 2010年10月21日 14:52
Tweet
[ Development ]
【お知らせ】音楽に関することはこちらのブログで書いています。くじら音楽部::BLOG
