【问题标题】:xcode 4 dot notation code sense problemxcode 4 dot notation code sense问题
【发布时间】:2011-06-11 09:04:31
【问题描述】:

如果我在 xcode 4 代码完成中使用点符号对我不起作用(按 ESC):

NSString *s = @"demo";
NSLog(@"%lu", [s length]); //[s <ESC> code completion works fine
NSLog(@"%lu", s.length); //s.<ESC> code completion doesn't work

??

【问题讨论】:

    标签: xcode sense


    【解决方案1】:

    确保该属性定义了有效的@property 访问器。

    // 在.h中

    @property (assign) int 长度;

    // 在.m中

    @synthesize 长度;

    请记住,您可以拥有自己的访问器和设置器,但我认为代码感知需要 @property 来显示点符号。

    【讨论】:

    • 这是正确的。 Xcode 的 Code Sense 不会为实际上不是属性的事物自动完成点符号。它将在运行时工作,但不鼓励您对非属性的事物使用点表示法。
    • 但是 'length' 不是 NSString 的属性吗(参考资料说它是一种方法,但 s.length() 不起作用)?
    • Ok s.length 应该避免,因为 length 是一种方法,点符号应该只用于属性?
    • Gert,取决于你如何使用/声明它。您当然可以使用它并将其声明为属性。在这两种情况下,长度都是一种方法。如果“长度”计算某些东西,那么我会使用一个简单的方法调用来保持一致。但是如果 length 返回一个内部变量,那么将其声明为 @property 并使用点符号会使事情变得更简单、更容易理解。另外,不要忘记投票/标记答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 2022-12-02
    • 2011-11-26
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多