假设我有这个界面:
// .h
@interface DataObject : NSObject {
NSString* value;
}
@property (retain) NSString* value;
@end
// .m
@implementation DataObject
@synthetize value
@end
据我了解,以下两个片段是相同的:
DataObject *o = [[[DataObject alloc] init] autorelease];
[o setValue: @"Hello"];
DataObject *o = [[[DataObject alloc] init] autorelease];
o.value = @"Hello";
我说错了吗?如果是的话,我应该更喜欢一个吗?或者它只是一种风格偏好?
谢谢。
答案 0 :(得分:4)
这是一种风格问题。
Dot语法在整个Objective C中的许多地方都有效,尽管它只被认为对于getter和setter来说是“可接受的”。
答案 1 :(得分:1)
我认为点符号比调用set方法更可取。我认为代码更具可读性,并且点符号更清楚地表明您正在设置属性,而不是仅仅在类上调用方法。
答案 2 :(得分:1)
点符号只是语法糖,所以两者是相同的。
答案 3 :(得分:0)
2009年8月,博客圈中出现了关于使用点语法的骚动。