objective-c - 覆盖 Objective-c 中的 setter。为什么检查相等参数

标签 objective-c getter-setter

经常找到像这样的自定义 setter sintaxis:

- (void)setParentCatalog:(Catalog *)parentCatalog {
    if (_parentCatalog != parentCatalog) { //???
        _parentCatalog = parentCatalog;
        [self refresh];
    }
}

为什么要检查?

if (_parentCatalog != parentCatalog)

最佳答案

这会检查 _parentCatalogparentCatalog 是否指向相同的内存位置。

如果两者是同一个对象则不需要设置objectValue。

关于objective-c - 覆盖 Objective-c 中的 setter。为什么检查相等参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806070/

相关文章:

objective-c - 带有不突出显示的渐变层的 UIButton

ios - 核心数据,获取某个 bool 值属性的总和

ios - 在 iPad 上全屏启动 YTPlayerView

ios - EXC_BAD_ACCESS 属性崩溃的 getter 方法

c++ - 在 C++ 中创建只读(公共(public))类成员

ios - 更新 NSError 用户信息

spring-boot - 如何设置 spring boot 中可选的 getter 和 setter 方法的值

数组属性的 JavaScript getter 方法

objective-c - 当 KVO 从模型 setter 触发时,防止递归地重新输入observeValueForKeypath

iphone - cocoa - 数组不排序?