このカテゴリの方法は、NSNotificationCenter
オブザーバーの追加保持を避けることができますか?NSNotificationCenterの保持サイクルを避けますか?
#import "NSNotificationCenter+Util.h"
@implementation NSNotificationCenter (Util)
- (void)addWeakObserver:(nonnull NSObject*)observer selector:(nonnull SEL)aSelector name:(nullable NSString *)aName object:(nullable id)anObject {
__weak NSObject *weakObserver = observer;
[self addObserver:weakObserver selector:aSelector name:aName object:anObject];
}
@end
目標は、オブジェクトを削除せずに死ぬことです。
注:私はサイクルを維持する原因とこの問題を回避しようとしている:
notificationObserver
またはaddObserver:selector:name:object:
に指定されたオブジェクトが割り当て解除される前removeObserver:name:object:
を起動してください。
ありがとう、私は間違ってそれを読んでいたことに気付かなかった。しかし、もっと重要なことに、私は知らなかった。「以前の参考文献がそれを保持してきた方法に関しては、オブジェクトに歴史はなく、それは自分自身の行動を制御する参照そのものだ」魅力的な –