タグ

autoreleaseに関するsilemのブックマーク (2)

  • 曲がった迷路その34 - NSThreadとNSAutoreleasePool:腰も砕けよ 膝も折れよ:So-net blog

    前回の続き。このまま休みに入ると何をやってたのか忘れてしまうのでキリがいいところまで書いておく。 世間で言われているようにNSOperationのmainメソッドの中でAutoreleasePoolのインスタンスを作らないとリークするか、というとそうではない。 ではどうなっているのか? どうなっているのかを見るためにちょっと実験してみる。 NSAutoreleasePoolにはドキュメントされてないけどデバグに使うと思われるメソッドがある。 + (void)showPools; これはFoundation frameworkのclass-dumpを読んでいて見つけた。こういう隠しメソッドと言うかデバグ痕跡のようなものがときどきある。こういうドキュメントされていないメソッドはOSのバージョンによって動作が違ったり、極端な場合全然違う意味だったりそもそも存在しなかったりするので注意が必要である

  • ykmt : mac » retain, release, autoreleaseについて考える

    Objective-C のコードを書いていると、理解しているはずなのに、ときどきわからなくなる。 そう、retain、release、autorelease の3兄弟だ。 この例はとってもシンプル。何をしたいのか理解できないが。 - (void) hoge: (id)obj { UIView *aView = [[UIView alloc] initWithFrame:CGRectZero]; [myView addSubView:aView]; [self hoge:obj]; } どうやら UIView のインスタンスを作って、myView に追加したいらしい。 だけど、このコードだと、aViewがメモリリークする。 2行目で、aViewのretainCountが1になる。 3行目で、myViewがaViewを使うことになるので、aViewのretainCountが2になる。 そして、

  • 1