タグ

ARCに関するodawaraのブックマーク (10)

  • ARC対応と非対応の環境両方に対応するコードの書き方 - 強火で進め

    今、何かと話題なOpenUDIDのARC対応と非対応の環境両方に対応するコードが良かったのでメモ。 https://github.com/ylechelle/OpenUDID/blob/master/OpenUDID.h #if __has_feature(objc_arc) #define HAS_ARC 1 #define RETAIN(_o) (_o) #define RELEASE(_o) #define AUTORELEASE(_o) (_o) #else #define HAS_ARC 0 #define RETAIN(_o) [(_o) retain] #define RELEASE(_o) [(_o) release] #define AUTORELEASE(_o) [(_o) autorelease] #endif 念の為、この記入の前にこの辺りの記述を入れておいた方が良

    ARC対応と非対応の環境両方に対応するコードの書き方 - 強火で進め
  • iOS5時代のメモリ管理 その3 ARCの記述

    メモリ管理の概要、ARCの設定に続いて、ARC(Automatic Reference Counting)対応のソースの記述についてです。 メモリの領域を参照数をカウントして、ゼロになった場合に解放するという考え方は同じですが、ARCによって記述が簡単になります。 今まで明示的にretainやreleaseを記述していましたが、以下の記述は全てエラーになります。 ・retain ・release ・retainCount ・autorelease 代わりにポインタを管理する変数の修飾子が増えてます。 ・__strong ・__weak ・__unsafe_unretained ・__autoreleasing 例えば、以下のような記述をします。 SomeObject * __strong obj; 以下のようにこの変数にポインタを代入した場合、 obj = someObj; 以下と同じ意味

    iOS5時代のメモリ管理 その3 ARCの記述
    odawara
    odawara 2012/02/25
  • プロジェクトのARC移行について

    iOS Advent Calendar 2011 22日目 この記事は@glassonion1さん主催のiOS Advent Calendar2011に向けて書いています。 昨日の@yomoappさんのiOS向けのオープンソースをまとめたサイトを作りましたからのバトンタッチです。 最近4.2以前のXCodeで開発したアプリをARC対応させたので、その手順と注意点など書いていきたいと思います。 ARCって何ですか ARCとはAutomatic Reference Countingの略称で、XCode4.2のApple LLVM 3.0 コンパイラから搭載された新機能です。 ご存知、iOSのObjective-CにはGCが無い為、オブジェクトのライフタイム管理はretain/releaseによるリファレンスカウンタの増減によって制御していました。 ARCはこれまで自分で記述しなければならなかっ

    プロジェクトのARC移行について
    odawara
    odawara 2011/12/26
  • Beginning ARC in iOS 5 Tutorial Part 1 - lightbluewind - 博客园

    odawara
    odawara 2011/12/18
  • ARCとautorelease : A road which I walked.

    12月9 ARCとautorelease カテゴリ:iOS ちょっと思うところがあって、ARCと非ARC環境でもインスタンスの振る舞いの調査。特にARCではC++のデストラクタのようにdeallocが使えるんではないかと期待。 https://gist.github.com/cf753752774967c4a9fa 最初の実験では期待どおり。iOS5でのメモリの解放タイミングをかなりコントロールしやすい。 iOS4では自分でreleaseすることでコントロールできるが、途中でreturnされたりスコープを抜けるとポインタをロストするので、なるべくautoreleaseに頼りたい場合がままある。しかし基的には遅延解放になるので、解放順をストリクトにしたいときには向かない。なので、そういう場合はそういうコードを書いてしまったエンジニアが責任もって解放処理を書くべし。 しかし、念のために例外t

    odawara
    odawara 2011/12/13
  • ARC の振る舞い

    デザインがなかなかいい。 tciuro/NoticeView シートの背景は画像が用意されていてそれを使っているようだ。@2xファイルが見当たらないのが気になった。 ネタ元はこちら。 iOSで上部にかっこよく通知を出す tciuro / NoticeView が...

    ARC の振る舞い
  • __weak and autorelease pool in ARC in Xcode 4.2

    odawara
    odawara 2011/12/07
  • [iOS5] ARC : Autorelease, キャスト, 環境設定 | Natsu note

    これまでの記事はこちら: [iOS5] ARC (Automatic Reference Counting) : Overview [iOS5] ARC : プロパティ属性と使い方 [iOS5] ARC : Outletにはweakプロパティを使おう [iOS5] ARC : 循環参照 ARCまとめの最終回はAutoreleaseとキャストについてです。また、最後で簡単にですが、Xcodeの環境設定についても触れます。 Autorelease ARC環境下では、これまでのNSAutoreleasePoolは使えません。そうは言っても、別にAutorelease環境がなくなってしまったわけではなく、作法が少し変わったのですね。 まずは、参考までにmain.mを見てみましょう。 非ARC(マニュアルメモリ管理) int main(int argc, char *argv[]) { NSAuto

  • ARCでめちゃモテiOSプログラマー

    This document discusses Automatic Reference Counting (ARC) in iOS. It explains how ARC manages memory by automatically retaining and releasing objects, eliminating the need for manual memory management. Key points covered include how ARC handles strong and weak references, transitioning between non-ARC and ARC code, and some tips for using ARC in practice.Read less

    ARCでめちゃモテiOSプログラマー
    odawara
    odawara 2011/12/02
  • [iOS5] ARC : プロパティ属性と使い方 | Natsu note

    strong __strong修飾子に対応するプロパティ属性です。strong属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 weak __weak修飾子に対応するプロパティ属性です。__weak修飾子を持った変数と同様、weak属性のプロパティも、参照先のオブジェクトが破棄されたら自動的にnilが代入されます。weak属性を用いたプロパティはオーナーシップ権を持ちません。 weak属性は、delegateやOutletの変数に最適です。 なお、iOS 4では__weak修飾子が使えないため、プロパティのweak属性も使えません。この場合は、後述のunsafe_unretainedを使いましょう。 copy __strong修飾子に対応しますが、実際にはコピーオブジェクトが代入されます。copy属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 unsafe

  • 1