アたい削除する必要がオブジェクトから受信KVOお知らせするカテゴリー登録を直接解除のですか?

StackOverflow https://stackoverflow.com/questions/13927

  •  08-06-2019
  •  | 
  •  

質問

がん登録オブジェクト foo 受KVOからのお知らせを別のオブジェクト バー (addObserver:...)すればそれを修復させようとするとエラーが foo 私に送る必要がある removeObserver:forKeyPath: メッセージ バー in-dealloc?

役に立ちましたか?

解決

を使用する必要があり -removeObserver:forKeyPath: 削除の前にオブザーバー -[NSObject dealloc] 走であり、この -dealloc 方法を教えます。

以上がっていた、という決定的な点が何を所有するオブジェクトを行なっているのを見たいのですが、(う)する割.そのように、停止観察時にすぐにもやっている観測が不要になったとき、かにかかわらず、実は割.

これは重要なのがオブジェクトのココアをしていると思決定論式として一人でも思っているようです。各種Mac OS X制度そのものを お送り物 -retain-autorelease, り、その寿命を超えていれだとは思います。

また、ときにしようとしていることがわObjective-Cのごみ収集すること -finalize までも何度も非常に異なる文脈によ -dealloc ました。一例を挙げると、確かに別のスレッドだっ できない 安全に送信 -removeObserver:forKeyPath: 別のオブジェクト -finalize 方法。

こだわりメモリ(およびその他の希少資源管理に -dealloc-finalize, ご利用は別 -invalidate 方法においてオーナーに伝え、オブジェクトだったので、決定的なポイント、いように除去KVO観測である。の意図的なヘルプオーサリング-ツールが明確になりますの少ない微妙なバグをしていかなければなりません。

他のヒント

このプレゼンテーションも堂々と情報といった考:がNSNotificationCenterを用いてゼロ設定弱参照することができ、カナダ、中国、インドKVOはできません。このように逃げることができな削除NSNotificationCenterオブザーバー利用時のGC大阪大学未来戦略機構(retain/発売の、依然必要だオブザーバー)ですが、ださKVOのオブザーバーとしてのChrisい。

あいクリスの"こだわりメモリ(およびその他の希少資源の管理にdeallocとを決定..."コメントとなります。多くの倍んごうを無効にすNSTimer物をdeallocます。問題は、NSTimer保する。その場合、対象のNSTimerは、自己deallocまでというよりも潜在的に起きメモリ解放されます。

を無効にする -invalidate いその他のメモリの清掃活動にお deallocfinalize.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top