我使用函数描述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 错误。是什么原因?非常感谢任何帮助。
答案 0 :(得分:1)
至少你可能想在你的%@
周围加上单引号。像这样:
NSArray *result = [[SQLiteManager singleton] find:@"field1,field2"
from:@"tableName" where:[NSString stringWithFormat:@"field3='%@'",
[textFieldName text]]];
但除此之外,您可能还想逃避字符串。