【发布时间】:2010-11-10 01:27:38
【问题描述】:
我想我要瞎了,因为我不知道这段代码中的语法错误在哪里:
if( cell == nil ) {
titledCell = [ [ [ TitledCell alloc ] initWithFrame:CGRectZero
reuseIdentifier:CellIdentifier ] autorelease
];
switch( cellNumber ) {
case 1:
NSString *viewDataKey = @"Name";
etc...
当我尝试编译它时,我得到一个 Error: syntax error before '*' token 在最后一行。
很抱歉问了这么一个基本问题,但我错过了什么?
【问题讨论】:
-
cellNumber是什么变量? switch 语句来自 C,因此使用 Objective-C 类型可能会出错。
-
C 仅支持
switch/case的类积分对象,如果这是这里的问题,我希望得到不同的错误消息。 -
Objective-C 是否遵循 C99(和 C++)并允许您在任何地方声明变量,还是只能在块的开头这样做?如果您被限制在块的开头声明它们,那么您可以通过在“
case 1:”的“:”和匹配的“}”之后放置“{”来修复语法错误在案件结束之前。 -
我不知道 Objective-C 是从 C89 分叉出来的,还是它也借用了 C99/C++ 结构。无论哪种方式,跳过 声明真的很可怕......
-
您可以在 Xcode 中将 C89 或 C99(或 GNU99)设置为构建属性; Objective-C 位于您选择的 C 标准之上。
标签: objective-c switch-statement