gpt4 book ai didi

objective-c - Objective-C 中点符号与方法调用之间的性能差异

转载 作者:太空狗 更新时间:2023-10-30 03:21:30 25 4
gpt4 key购买 nike

您可以使用标准点符号或 Objective-C 中的方法调用来访问 Objective-C 中对象的属性。

myObject.property = YES;

[myObject setProperty:YES];

性能(在访问属性方面)是否存在差异?这只是编码风格方面的偏好问题吗?

最佳答案

Objective-C 中属性访问的点表示法消息发送,就像括号表示法一样。也就是说,鉴于此:

@interface Foo : NSObject
@property BOOL bar;
@end

Foo *foo = [[Foo alloc] init];
foo.bar = YES;
[foo setBar:YES];

最后两行将编译完全相同。唯一改变这一点的是属性是否指定了 getter 和/或 setter 属性;然而,它所做的只是更改发送的消息,而不是是否发送消息:

@interface MyView : NSView
@property(getter=isEmpty) BOOL empty;
@end

if ([someView isEmpty]) { /* ... */ }
if (someView.empty) { /* ... */ }

最后两行的编译结果是一样的。

关于objective-c - Objective-C 中点符号与方法调用之间的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com