错误:预期的标识符或'('

时间:2011-06-30 07:16:05

标签: ios4 cocos2d-iphone iphone

在File.h中

我有变量是:

NSString *Category;
<。>在.m和.h

我收到此错误“预期的标识符或'('”在此行代码中:

------------------------------------的.h

Category = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectStatement,3)];

[Categoryarray addObject:Category];

Category = [Categoryarray objectAtIndex:i];

sqlite3_bind_text(addStmt, 3, [Category UTF8String], -1, SQLITE_TRANSIENT); //! Receiver type 'Category'(aka 'struct objc_category *') is not Object..

类别不是Object-C类名或别名

---------------------------------------端

并且在第二节中显示红色错误: -----------------。h sub class

IBOutlet UITextField *类别;

----------------。m sub class

if([Category.text isEqualToString:@""] || Category.text == nil){ // ! expect ";" in expression
    Category.text=@" ";
}

在代码中,另一行没有错,但只有这一行是错误的。

我不知道为什么,有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

如果“Category”为NSString,您可以直接执行

if([Category isEqualToString:@""] || Category == nil){ 

}

答案 1 :(得分:0)

我认为你正在经历名字冲突。 Categoryobj-class.h中的定义如下:

typedef struct objc_category *Category;

因此,您的错误(来自您的评论):

  

接收器类型'类别'(又名'结构'   objc_category *')不是Objective-C   类。

将实例变量重命名为其他内容应该可以解决问题(几乎可以继续阅读)。

此外,您的变量是NSString,并且没有属性text

if([Category.text isEqualToString:@""] || Category.text == nil){
    Category.text=@" ";
}

您可以直接在NSString上调用这些方法:

if([myString isEqualToString:@""] || myString == nil) {
    myString = @"";
}

答案 2 :(得分:0)

类别”是 NSString ,所以你可以直接做

if([Category isEqualToString:@""] || Category == nil){ 
  Category = @"";
}