私はまだObjective-Cの基礎を学んでいます。私はこのようなコードをNSObjectに書いています。オブザーバーを取り除く必要がありますか?もしそうなら、どこで取り除くことができますか?私はARCを使用しています。 deallocで削除する必要がありますか?NSObjectでオブザーバを削除する必要はありますか?
- (id)init {
if (self = [super init])
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(preferredContentSizeChanged:)
name:UIContentSizeCategoryDidChangeNotification
object:nil];
}
return self; }
ありがとう。 ios 8以降では、これを記述するだけですか? - (無効)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self 名前:UIContentSizeCategoryDidChangeNotification オブジェクト:なし]; } –
あなたは、自己を削除するだけで、すべてが削除されます – Tj3n
キーパスオブザーバーはどうですか?ありがとう。 –