我有变量是:
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=@" ";
}
在代码中,另一行没有错,但只有这一行是错误的。
我不知道为什么,有人可以帮忙吗?
答案 0 :(得分:1)
如果“Category
”为NSString
,您可以直接执行
if([Category isEqualToString:@""] || Category == nil){
}
答案 1 :(得分:0)
我认为你正在经历名字冲突。 Category
在obj-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 = @"";
}