0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NSKeyValueObservationはinvalidateしよう!

Posted at

経緯

AVPlayerrateをKVOで監視する実装を行い、NSKeyValueObservationはメンバ変数に持たせました。
解放は、NSKeyValueObservation#invalidateに下記のコメントがあったため、メンバ変数を持っているクラスの解放に任せることにしました。

invalidate() will be called automatically when an NSKeyValueObservation is deinited

ところが、リリースしてみると、スタックトレースに下記を含むようなクラッシュが多発しました。
開発時やテストフライトでの動作確認も行っておりましたが、再現はできませんでした。

KVO_IS_RETAINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_SMASHED

解決

Appleのいうことは信じずに、メンバ変数を持っているクラスのdeinitNSKeyValueObservation#invalidateを明示的に行うように変更したところ、発生しなくなりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?