添加观察者是否会增加对象的保留计数?

推荐答案

即使使用ARC,也应该明确删除观察者.创建一个dealloc方法并将其删除..

-(void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

如果在这里看到不需要调用[super dealloc];的方法,则只需要不带super Dealoc的方法.

UPDATE for Swift

如果用swift编写代码,可以删除observer in deinit方法.

deinit {
        NSNotificationCenter.defaultCenter().removeObserver(self)
       }

Objective-c相关问答推荐

XCTAssertEqual 不适用于双精度值

在 iOS 中检测 PAN 手势的方向

为什么当我使其处于非活动状态时,弱 IBOutlet NSLayoutConstraint 变为 nil?

如何获取 AppIcon 的 UIImage?

将子视图添加到 UIButton

Select 时如何更改 UITableViewCell 的 colored颜色 ?

未找到 RKObjectMapping.h

设置数据后调整 UICollectionView 单元格的大小

从 UIPageViewController 中移除视图控制器

无法加载 xcode 项目,因为它已从另一个项目或工作区打开

从 UIImage 获取 Exif 数据 - UIImagePickerController

如何在 Cocoa 中获取 NSArray 的第一个 x 元素?

立即检测 iOS 方向变化

自定义 colored颜色 我的 UIActivityIndi​​catorView

UITableViewCell 点击展开

使用 respondsToSelector 时 suppress '...' is deprecated

writeToFile:atomically: atomically 是什么意思?

将 NSDate 舍入到最接近的 5 分钟

如何设置字体大小以填充 UILabel 高度?

如何在对象内使用 objc_setAssociatedObject/objc_getAssociatedObject?