1
私はlocation
プロパティを持つCoreLocationシングルトンを持っています。私は場所を取得したときに、私は他のコントローラにその場所が受信されたことを通知する必要があります。しかし、私はKey Value ObservingとNSNotificationCenterの使用の間に挫折しています。私は現在、KVOを使用して設定していますが、KVOプロパティがnilの場合はクラッシュするようです。これを行う最善の方法はどれですか?KVOまたはNSNotificationCenterを使用すべきですか?
これを正しく設定したかどうかも疑問です。たとえば、プロパティが「動的」でない場合、それはSwiftで見ることができません。私はたぶんKVOが悪いので、あなたにそれを言ってはいけませんが、私の警告にもかかわらずKVOを使用したいと思うかもしれません: – matt
ありがとうございます。実際、私はそれをダイナミックに設定していませんでした...それは奇妙なクラッシュから離れて作業していました。私はlocation変数の周りに 'willChangeValueForKey(" location ")'と 'didChangeValueForKey(" location ")'を使用しました。このキーワードを追加すると何が行われますか? – Tometoyou
KVOはどのように機能しますか?これは、あなたのプロパティのセッターを効果的にメソッドswizzles。 (真実はより複雑ですが、私はKVOを悪魔の作品とみなしています。)プロパティが「動的」でなければ、それはできません。あなたの「意志」と「した」は必要性を取り除いた。 – matt