2011-06-11 78 views
2

如果我使用点符号在Xcode 4码完成对我不起作用(按ESC):的Xcode 4点符号代码感问题

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

回答

0

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

// in .h

@property(assign)int length;

// in .m

@synthesize length;

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

+0

这是正确的。 Xcode的Code Sense不会自动完成不符合实际属性的点符号。它将在运行时工作,但不鼓励将点符号用于非属性的事物。 – 2011-06-11 21:53:14

+1

但是'长度'不是NSString的一个属性(引用说它是一个方法,但s.length()不起作用)? – gert 2011-06-12 06:50:39

+0

好的s.length应该避免,因为长度是一种方法,点符号应该只用于属性? – gert 2011-06-12 07:06:42