タグ

Objective-Cとarcに関するDNPPのブックマーク (4)

  • ARCとNSWindowでハマった - Takebayashi.Asia

    Xcode 4の“Convert to Objective-C ARC…”を使って「へへっ、楽チンだぜ」って言ってたらハマった時のお話です。主にNSWindowまわりで。 NSWindowにはisReleasedWhenClosedっていうプロパティがありますよね。これがYESだとウインドウが閉じられると同時に自動的に解放されるわけですが、これがデフォルトでYESなんですよね(NSPanelではNOがデフォルトですが)。しかしARC的にはこの解放を検知できないので、問題が起きる可能性があります。 論よりコード、例えば以下のようなコードがあったとします。 @implementation WindowToggleController { NSWindow *_window; } - (void)toggleWindow:(id)sender { if (_window) { [_window

  • ARCでweak参照が使えないクラスについて:NSWindowとか - Takebayashi.Asia

    December 23, 2011 ARCでweak参照が使えないクラスについて:NSWindowとか ARC便利ですよね。オブジェクトの確保や解放に関するコードがなくなるので全体の見通しが良くなってスッキリしますよね。え、GC?知らん。 で、ARCを有効にするとweak参照な変数が使えます。旧来のassignプロパティと同じような弱い参照なわけですが、参照先のオブジェクトが解放されると自動的にnilになってくれるイカしたやつです。便利ですね。 このweak参照、実はすべてのオブジェクトに使えるわけではありません。例えば、以下のようなプロパティを用意したとします。 ウインドウへの参照をアウトレットとして持とうとしているわけですね。しかしこのプロパティを含むコードを実行すると、以下のようなメッセージが出力されます。 objc[2242]: cannot form weak reference

  • ARC の有効/無効をファイルごとに設定する方法 - その後のその後

    プロジェクト全体でARCを有効にした状態で、一部ファイルを無効にしたい場合は、 1. プロジェクト設定画面のBuild Phasesタブを開く 2. ARCを無効にしたいファイルをまとめて選択 3. リターンキーを押すとダイアログボックスが出てくるので、"-fno-objc-arc"というコンパイラフラグを追加する。 逆に、一部ファイルだけ有効にしたい場合は、プロジェクト全体でARCを無効にした状態で、"-fobjc-arc"フラグを追加します。 参考ページ http://stackoverflow.com/questions/6308425/ios-5-best-practice-release-retain/ http://ios.biomsoft.com/2011/12/24/migrating-your-code-to-objective-c-arc/

    ARC の有効/無効をファイルごとに設定する方法 - その後のその後
  • [iOS5] ARC (Automatic Reference Counting) : Overview » iOS 開発ブログ Natsu's note - iOS 開発ブログ Natsu's note

    [iOS5] ARC (Automatic Reference Counting) : Overview 2011/11/16/|iOS|メモリ管理, iOS5, ARC iOS 5では数々の機能が追加されましたが、その中でも開発者の私たちにとって嬉しかったのはARC(Automatic Reference Counting)ではないでしょうか。そこで、ARCの概要から注意点まで、基的なところを何回かに分けてまとめていきたいと思います。 ARCとは? ARC (Automatic Reference Counting) とは、その名の通り、自動リファレンスカウンタ。リファレンスカウンタ方式のメモリ管理を自動で(正確にはコンパイラが)行ってくれるというものです。 ご存知リファレンスカウンタ方式のメモリ管理では、retain, releaseなどのメソッドを用いて生成したオブジェクトの保持状

    [iOS5] ARC (Automatic Reference Counting) : Overview » iOS 開発ブログ Natsu's note - iOS 開発ブログ Natsu's note
  • 1