目标C中string.length和[string length]之间的差异

时间:2014-02-16 09:27:59

标签: objective-c c

有人可以在目标C中向我解释原因 用

声明字符串时
NSString *string;

我可以同时使用string.length[string length]来返回字符串的长度吗?

<。>在.h中只有方法

-(NSUInteger *)length

那为什么我可以使用(点)符号?

1 个答案:

答案 0 :(得分:2)

这只是语法糖,它们都是一样的。点符号随@property一起出现,但在幕后它会转换为方法调用。实际上,您拥有的任何@property定义都将生成相关的访问器方法,它们实际上是被调用的。同样,您可以调用方法名称而不是使用点表示法。

尝试使用对您和上下文都最有意义的符号。点符号不能与采用任何参数的方法一起使用,但也只能用于没有副作用的方法。

有关该主题的有趣文章at the big nerd ranch