obj-c 属性 getter 无限循环是有限的

Obj-c property getter infinite loop is finite

我正在更新别人写的代码,我遇到了这个无限循环:

-(SelectionViewMode)getSelectionViewMode {
    return self.selectionViewMode; 
}

但是在单步执行调试器时它只执行一次。这是编译器帮忙吗?

selectionViewMode 在 .h 文件中声明为:

@property (nonatomic) SelectionViewMode selectionViewMode;

这不是无限循环,因为 Objective-C 习语是访问器以 属性 的名称命名(即 selectionViewMode 而不是 getSelectionViewMode),没有前缀任何形式的。只有 setter 有前缀(with set)。所以你的 getSelectionViewMode 方法只是包装实际的 getter.