&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を使うのは問題ない。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS