Objective-C类方法:点语法和​​'类属性'

时间:2013-01-07 10:10:38

标签: objective-c class properties autocomplete

在为iOS编程时遇到以下情况:

我有一个带有类方法+ (Store*)sharedStore的单例类。当我想在单例对象上调用实例方法时,我可以使用点语法来获取该对象,即[Store.sharedStore foo]

但是,在输入点后,Xcode不会自动完成'sharedStore'。另一方面,[[Store sharedStore] foo] 已自动完成!

是否有'类属性'这样的东西?如果我可以将sharedStore转换为类的readonly属性,则点语法将获得自动完成。

更一般地说,Xcode只是在点语法之后不会在非属性的任何东西上自动完成,即使这是调用(getter)方法的有效方式。

感谢任何解决方案,变通方法或信息。

2 个答案:

答案 0 :(得分:3)

目前,就课程吸气者而言,似乎我们必须:

  • 在没有自动完成的情况下使用此语法 Store.sharedStore;或
  • 使用括号语法:[Store sharedStore]

我最近没有尝试过其他编辑器(例如AppCode)。另一个编辑器可能自动修正类getter上的点语法。

关于什么是正确的,合乎逻辑的或可读的,意见各不相同。

答案 1 :(得分:0)

Dot语法用于访问属性。有些人将它与实例方法一起使用,这些方法返回一个值并且没有参数,但这是一个糟糕的方法。所有其他情况都是错误的。