2011-06-11 74 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