IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
セレクタを指定してオブジェクトにメッセージを送る処理について。 SEL sel = @selector(doSomething); if ([obj respondsToSelector:sel]) { [obj performSelector:sel]; } このようなコードをビルドすると、ARC有効時にperformSelector:の行について次の警告が出る。 PerformSelector may cause a leak because its selector is unknown 指示子@selectorによりセレクタを指定するのではなくSEL型変数を使用する場合にのみ警告が出る。実際、次のような場合には警告は出ない。 if ([obj respondsToSelector:@selector(doSomething)]) { [obj doSomething]; } if
strong __strong修飾子に対応するプロパティ属性です。strong属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 weak __weak修飾子に対応するプロパティ属性です。__weak修飾子を持った変数と同様、weak属性のプロパティも、参照先のオブジェクトが破棄されたら自動的にnilが代入されます。weak属性を用いたプロパティはオーナーシップ権を持ちません。 weak属性は、delegateやOutletの変数に最適です。 なお、iOS 4では__weak修飾子が使えないため、プロパティのweak属性も使えません。この場合は、後述のunsafe_unretainedを使いましょう。 copy __strong修飾子に対応しますが、実際にはコピーオブジェクトが代入されます。copy属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 unsafe
2017/05/12追記 この記事はだいぶ古い記事なのですがありがたいことにアクセスが多いです。ですがもし今swift3で書くのであれば以下のページを参考にした方がよいと思います。 非常に簡単に書けるようになっています。 >> Grand Central Dispatch Tutorial for Swift 3: Part 1/2 >> Grand Central Dispatch Tutorial for Swift 3: Part 2/2 >> [Swift 3] Swift 3時代のGCDの基本的な使い方 以下元の記事となります。 ==== こんにちは。きんくまです。 今回はスレッドのはなしです。 ふつう時間のかかる処理をそのままやってしまうと、アプリケーションの応答が止まってしまって、 「何これ、壊れてんの?」なんて状態になります。 UIなどの画面の更新はメインスレッドで行われて
Objective-C Automatic Reference Counting (ARC)¶ About this document¶ Purpose¶ The first and primary purpose of this document is to serve as a complete technical specification of Automatic Reference Counting. Given a core Objective-C compiler and runtime, it should be possible to write a compiler and runtime which implements these new semantics. The secondary purpose is to act as a rationale for wh
これまでの記事はこちら: [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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く