Objc计算属性vs方法

时间:2016-05-23 14:26:20

标签: objective-c

我刚刚在Apple来源中看到了这一点:

@property (readonly, copy) NSString *uppercaseString;

所以要将字符串大写一个

@"sdfks".uppercaseString;

这样做有什么好处,而不仅仅是方法

- (NSString *) uppercaseString;

我很肯定它是一样的,但我真的想知道为什么你会使用readonly变体而不是方法或其他方式。

1 个答案:

答案 0 :(得分:2)

您正在使用某种方法。

Objective-C属性归结为可以使用两种替代语法调用的方法(或一组可设置属性的方法) - 点语法

@"sdfks".uppercaseString

和常规方法调用语法

[@"sdfks" uppercaseString]

当您需要访问由其他方法调用生成的对象的属性时,点语法变得更加方便:

person.address.city.uppercaseString

语法的标点符号少于

[[[person address] city] uppercaseString]

因此可能对某些程序员更具视觉吸引力。