目标C:从数据库读取数据时断言失败

时间:2012-08-22 19:07:42

标签: objective-c database sqlite nsstring assertion

我使用函数描述HERE来访问sqlite数据库。 我遇到了这个功能的问题:

  

- (NSArray *)find:(NSString *)字段来自:(NSString *)表其中:(NSString *)condition。

当条件为nil且条件为没有任何格式或方法的字符串时,此函数效果很好;即,当它是以下任何一个时,它运作良好

  

NSArray * result = [[SQLiteManager singleton] find:@“field1,field2”from:@“tableName”where:nil];

     

NSArray * result = [[SQLiteManager singleton] find:@“field1,field2”from:@“tableName”where:@“field2 = value”];

但是,我有一个应该从UITextField读取的条件。例如

  

NSArray * result = [[SQLiteManager singleton] find:@“field1,field2”from:@“tableName”其中:[NSString stringWithFormat:@“field3 =%@”,[textFieldName text]]];

不幸的是,当我尝试这样做时,代码中断了 Assertion Failure 错误。是什么原因?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

至少你可能想在你的%@周围加上单引号。像这样:

NSArray *result = [[SQLiteManager singleton] find:@"field1,field2"
 from:@"tableName" where:[NSString stringWithFormat:@"field3='%@'",
 [textFieldName text]]];

但除此之外,您可能还想逃避字符串。