在Objective-c中,使用a之间的区别是什么。和使用 - >?我多次使用点符号,但只是偶然遇到 - >
E.G
Object.subObject
or
Object->subObject
答案 0 :(得分:3)
myObject.myProperty
dot可以调用属性的getter / setter或访问struct。
在你的情况下,subObject可能不是一个struct,所以使用myObject.myProperty
与调用方法[myObject myProperty]
是相同的,它是“myProperty”属性的getter。
使用点设置新值时的方法相同。您正在调用[myObject setMyProperty:newValue];
,它将执行为您的属性定义的适当内存管理(例如保留,复制或分配值以及释放旧值)。
(使用getter和setter也会调用KVO的工作)
myObject->myProperty
箭头指向变量的内存。
这只是意味着您正在关注指向myProperty
所在内存的指针。这是较低级别,不会为您进行任何内存管理,也不适用于KVO。