当我开始输入诸如
之类的功能时,在Xcode(Snow Leopard上的3.2)中-(void)myFunctionName {
}
当我第一次开始输入时,代码提示是
-(voidPtr
void
和voidPtr
之间有什么区别?我假设voidPtr
是某种指针,在什么情况下要求使用它?我是否要使用voidPtr
代替void
?
我可以在编辑器中更改默认为void
的偏好设置,然后如果需要,我可以输入P并将标签完整设置为voidPtr
吗?
是否有通用的方法来配置或优先处理代码提示,以便在更加模糊的代码提示之前显示常见提示?
我可以创建代码提示快捷方式吗?我在哪里输入几个字符和一个扩展常见样板代码的命令?
有哪些推荐的练习教程可以提高Xcode编辑的效率?
更新:根据Darren的建议,看起来像voidPtr来自
CarbonCore/Threads.h
...
/*
The following ProcPtrs cannot be interchanged with UniversalProcPtrs because
of differences between 680x0 and PowerPC runtime architectures with regard to
the implementation of the Thread Manager.
*/
typedef void * voidPtr;
我正在使用Snow Leopard的新香草安装上运行Xcode。我没有对我的项目做过任何异国情调。刚刚开始一些关于Xcode和Objective C的非常基础的教程。任何有经验的Objective C人都有这方面有用的背景信息吗?
答案 0 :(得分:2)
更新: 旧版Xcode中的错误。 Bug#7256749已修复。我刚尝试使用最新版本的Xcode,一切都是玫瑰。
历史信息(适用于Xcode 4.0发布之前的Xcode版本)
如果您开始输入C风格的函数声明:
void SomeFunc(...
然后“void”将作为第一个建议出现。 Xcode的代码意义根据周围的语法应用不同的规则,当您创建Objective-C函数声明时,它似乎排除了所有内置类型,包括void
。
我已经向Apple提交了一个错误(通过bugreport.apple.com),我建议您也这样做。 Apple根据他们针对特定问题查看的重复报告的数量,优先考虑他们的软件修复程序(至少部分)。
注意:以下是提交给Apple的错误报告的全文:
要点:
Xcode的代码检测在您键入时提供建议匹配的列表。根据上下文过滤此列表。键入Objective-C方法声明时,会过滤掉内置类型(void,int,float等)。为了鼓励使用NSInteger或NSNumber,可能会故意丢失int和float等数字类型,但仍然会一直使用void类型,并且应该真正出现在建议列表中。重现步骤:
1.打开Xcode
2.使用Cocoa Application模板创建一个新项目 3.打开应用程序委托头文件
4.开始创建一个带有void返回类型的方法声明:
- (vo
5.按“转义”以显示建议完成的完整列表预期结果:
我希望在建议列表的顶层看到“无效”,我希望它会被突出显示为最可能的选择。实际结果:
该列表甚至不包含“void”,所选的候选者是“voidPtr”,它在CarbonCore / Threads.h中声明回归:
未知,但它确实发生在Mac OS X10.6上最新版本的Xcode(3.2(1610))注意:
上的讨论
请参阅StackOverflow.com(Xcode editor default to -(void) instead of -(voidPtr)?)
答案 1 :(得分:1)
voidPtr不是标准的Objective-C或Cocoa类型。 XCode可能会呈现voidPtr
,因为它在项目的某处找到了符号。
您可以从菜单中选择“文件>快速打开”(⌘⇧D),然后输入voidPtr
以查看该符号的定义位置。您也可以通过按住Command键并双击源代码中的符号来执行相同的操作。