为什么Xcode的自动完成总是认为我的属性是int?

时间:2009-07-23 17:42:43

标签: iphone objective-c xcode

我已经看了一年多了,我无法弄清楚这是一个错误还是我做错了什么。

当我在我的一个类中声明属性时,如

@property (nonatomic, retain) NSString *aString;

我会在其他地方使用它,比如

myObject.aStr[ESC]

当列表中弹出所有建议时,aString 总是类型为int。我所有的属性都是这样的。

我在不同的安装,不同的机器,发行版或测试版上试过这个。

其他人看到了吗?或者我错过了什么?

3 个答案:

答案 0 :(得分:3)

这是Xcode 3.1.x中的已知错误。 Snow Leopard版本中的Xcode版本对自动完成行为有很多修复。

答案 1 :(得分:2)

这可能是因为在某些情况下,C中的未定义类型被视为int而Xcode没有后台编译器(如Visual Studio对C#所做的)其“intellisense”。

如果在声明属性后立即编译项目,Xcode应该看到正确的类型。

答案 2 :(得分:1)

也许XCode正在接受这样一个事实:你所拥有的不是一个字符串,它是一个指向字符串的指针。它没有理由应该认为它是一个int,但也许是指针是4个字节而int也是4个字节的事实导致这种情况发生。建设可能解决了这个问题。当我回到我的Mac时,我会更新。