这种类别方法是否允许我避免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
Run Code Online (Sandbox Code Playgroud)
目标是让对象死掉而不必将其移除.
注意:我试图避免这导致保留周期:
一定要调用
removeObserver:name:object:之前notificationObserver或在指定的任何对象addObserver:selector:name:object:被释放.