« Facebookが楽しいんです | メイン | iOS SDKのviewDidUnloadでoutletを解放するべきか否か »

2010年10月21日

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 このエントリーを含むはてなブックマーク

[ Development ]
【お知らせ】音楽に関することはこちらのブログで書いています。くじら音楽部::BLOG