Objective-C 基本講座

相互参照を回避する

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
ARCの限界について、相互参照問題の点から議論し、その解決法を学習します。
講師:
03:27

字幕

このレッスンでは相互参照問題を紹介します 参照カウントの仕組みはプログラマーから オブジェクトの片付けというわずらわしい作業 をなくしてくれて大変ありがたいのですが 厄介な点が1つあります オブジェクトが互いに参照し合う状態です 試しにやってみましょう Xcode の画面に切り替えます Event クラスに別のEvent クラス を参照するためのプログラムを用意し 2つ作成したEvent クラスを 互いに結びつけてみます まず最初は問題点を確認するために 互いではなく片方だけ参照させてみます オブジェクトが片付けられる時に呼ばれる ディアロックでコンソールに 「メモリから消えます」と出力させているので 正しく片付いていくなら このメッセージが出るはずです 出ました では今度は もう1 人にも相手を参照させてみましょう たったこれだけの作業ですがランさせると 「メモリから消えます」が 出力されなくなります 確認したので解説画面に戻ります この問題はEvent A Event B の変数が片付いても互いの プロパティの参照が残ってしまうのが原因です 相互参照問題などと呼ばれます この問題を解決する1つの方法として どちらかのフレンドプロパティを nill に設定した後で Event AEvent Bをnill にするといった順番で解決する方法があります 例えばEvent A 側の フレンドプロパティをnill にしておくと Event A Event B どちらが 先にnill またはスコープ外になっても Event インスタンスは解放されます ただそうそううまく 順序を守れるものではありません もう1 つの方法はフレンドプロパティ の属性にweak を指定する方法です weak を指定された オブジェクト参照プロパティは 参照はするけれどカウントを増加させません これならお互いに片付きます weak は変数でも指定可能です こちらは手前にアンダースコアを 2 つ続けたweak を型の前に書きます ではフレンドプロパティの属性に weak を指定してみましょう Xcode の画面に切り替えます ランすると無事 「メモリから消えます」が表示されました このレッスンでは相互参照を紹介しました

Objective-C 基本講座

このコースはプログラミング初心者でもObjective-CによるiOSアプリ開発の体系的な理解が得られるように構成されています。プログラムの動作の原理、Objective-C言語の役割、そこで利用されるCocoa touchオブジェクトの役割、基本的なiOSアプリの作成方法などを学習します。ぜひこのコースをアプリ開発に踏み出すさいの第一歩としてください!

6時間39分 (69 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2015年11月18日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。