2012-01-31 7 views
0

私はログファイルを[Logger uploadLogFiles]のように呼び出すと、ある時点でアップロードするLoggerという静的クラスを作成しようとしています。addObserver:forKeyPath:はどのように静的クラスで動作しますか?

私はそうのように、この静的クラスにオブザーバを追加しようとしています:

[Logger addObserver:self forKeyPath:@"uploadComplete" options:NSKeyValueObservingOptionNew context:nil];

私はNSURLConnectionのための非同期呼び出しメソッドを開始する前にこれを行います。私は、のパラメータにClassを送信する互換性のないポインタタイプと警告を得る。

しかし、observerValueForKeyPath:メソッドが呼び出されないため、これは機能していないようです。

静的クラスの静的変数にオブザーバーを追加した経験がありましたか?

ありがとうございます!

答えて

2

クラスにはインスタンス変数がないため、何も観察できません。

KVOの実際のオブジェクト(クラスのインスタンス)が必要です。

+0

ここでこの回答を見つけることは安心ですが、ソースがありますか? – Matthew

+0

@Matt何のためのソース?クラス自体にはインスタンス変数がありません。インスタンス変数を持つにはクラスのインスタンスが必要です。 Objective-Cリファレンスを見てください。 – Abizern

関連する問題