&tag(Objective-C/ARC); *目次 [#f34d63c5] #contents *参考情報 [#t637a312] *概要 [#hf8a1004] -[[Objective-C ARCによるメモリ管理 | YOHEI's BLOG:http://cx5software.com/blog/2011/12/31/objective-c-memory_management_by_arc/]] -[[Objective-Cのメモリ管理おさらいと解放tips | 株式会社インフィニットループ技術ブログ:http://www.infiniteloop.co.jp/blog/2014/03/objective-c-memory-tips/]] -[[ARCについて色々実験(1) - 工場裏のアーカイブス:http://chemicalfactory.hatenablog.com/entry/2012/12/18/224004]] //戻り値に関して *ポイント [#o5cc8ef1] **initもarrayも同じ扱いになる。 [#gbdcf201] -[[The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS ... - Erica Sadun - Google ブックス:http://books.google.co.jp/books?id=kGy77H7ejY0C&pg=PA70&lpg=PA70&dq=arc+%5BNSArray+array%5D&source=bl&ots=S-4l7VgcRf&sig=FKbvi-HAKr9XVsf7ItttWYoFmP4&hl=ja&sa=X&ei=0ADSU_6mGoP98QXA74CICQ&redir_esc=y#v=onepage&q=arc%20%5BNSArray%20array%5D&f=false]]にあるように以下のコードは同じになる。 #pre{{ NSArray *array = [[NSArray alloc] init]; NSArray *array = [NSArray array]; }} **メソッドの戻り値はまためんどい? [#m7e9c25d] -PENDING@autoreleasepoolがいる? *よくある質問 [#p83e50cb] **ソース単位でnon-ARC/ARCを切り替えたい [#rbd74703] -[[EZ-NET: ファイル毎に ARC の有効・無効を設定する - Automatic Reference Counting:http://program.station.ez-net.jp/special/objective-c/llvm/arc/enable-file.asp]]…TargetのBuild Phases→Compile Sourcesでファイルをダブルクリックして設定できる。 --有効にした場合: -fobjc-arc --無効化したい場合: -fno-objc-arc **non-ARC/ARC混在継承 [#f0efe894] -[[EZ-NET: クラスの継承で従来コードと ARC コードが混在する場合 - Automatic Reference Counting:http://program.station.ez-net.jp/special/objective-c/llvm/arc/hybrid-class.asp]]によると細かい問題はありそうだけど一応できる雰囲気。 -[[objective c - ARC, non-ARC, and inheritance - Stack Overflow:http://stackoverflow.com/questions/11018137/arc-non-arc-and-inheritance]]にもそういうことがかかれてある。sourcecode preprocessorだからできるよてきな。 **プロジェクトがARC対応プロジェクトかどうか確認したい [#i0723ab6] -TargetのBuild Settings [Objective-C Automatic Reference Counting]を確認する。 **ARCでweakSelfはブロックの中だけで使えばいいのか。 [#zafbc6d8] -[[objective c - How is self passed to methods (or how to prevent strong reference cycles) - Stack Overflow:http://stackoverflow.com/questions/13801632/how-is-self-passed-to-methods-or-how-to-prevent-strong-reference-cycles]] -_weakが影響するのは変数のみ。ブロック内部で「[self foo]」を呼び出したとき、fooメソッド内部でselfを使うのは問題ない。