サンプルコードAVFoundation.Framework
- >AVSimpleEditoriOS
&私は理解できない次の行を見つけました。サンプルコードのAVFoundation.Frameworkの静的voidポインタ
static void *AVSEPlayerItemStatusContext = &AVSEPlayerItemStatusContext;
static void *AVSEPlayerLayerReadyForDisplay = &AVSEPlayerLayerReadyForDisplay;
が二行以上
static void *AVSEPlayerItemStatusContext = nil;
static void *AVSEPlayerLayerReadyForDisplay = nil;
を以下の点を考慮、私はそれらのいくつかの派手な名前を持つ2静的な無効/汎用のポインタであることを把握することができます。
は今戻って、これらの2行に、私は再びそれをここに貼り付けています、
static void *AVSEPlayerItemStatusContext = &AVSEPlayerItemStatusContext;
static void *AVSEPlayerLayerReadyForDisplay = &AVSEPlayerLayerReadyForDisplay;
は、それがどのような意味で必要とされるであろう、なぜそれ自身&の参照を格納2の静的な無効/ジェネリックポインタ、上記意味するのでしょうか?
私はこのようなコードパターンを学ぶためのガイドはほとんど必要ありません。 知識を待っています。
内部フレームワークからの応答を受け取ったときに、コンテキストの応答を識別できますか?(データベースのレコードの一意のIDと同じように)コンテキストとして渡していますか? –
@スパーク:はい、そうです。 'addObserver'のコンテキストパラメータはポインタ変数を必要とするので、これは一意のポインタ変数を作成する便利な方法です。 - 私はアイデアをより明確にするために答えを少し広げました。 –
ちょうど1つの注記:スーパークラスの1つが同じキーパスを観察している可能性があるため、一般に一意のコンテキストポインタがキーパス文字列よりも優先されます。 –