我有这些代码从SQLite数据库中检索值并将其与头文件中声明的NSString进行比较。
从数据库中检索:
NSString *sql = [[NSString alloc] initWithFormat:@"SELECT TESTONE, TESTTWO, TESTTHREE, TESTFOUR FROM STUDENTS WHERE NAME='%@'",Name];
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(db, [sql UTF8String], -1, &statement, nil)== SQLITE_OK)
{
while(sqlite3_step(statement) == SQLITE_ROW){
char *one = (char *) sqlite3_column_text(statement,0);
tOne = [[NSString alloc] initWithUTF8String:one];
char *two = (char *) sqlite3_column_text(statement,1);
tTwo = [[NSString alloc] initWithUTF8String:two];
char *three = (char *) sqlite3_column_text(statement,2);
tThree = [[NSString alloc] initWithUTF8String:three];
char *four = (char *) sqlite3_column_text(statement,3);
tFour = [[NSString alloc] initWithUTF8String:four];
}
}
比较字符串:
if(tOne == @"Yes")
{
//blablabla
}
else if(tOne == @"No")
{
//blablabla
}
似乎没有进入“IF'一点都没 我仔细检查了数据库中的字段及其TEXT数据类型 我制作了一个UILabel来显示tOne值,它显示"是"。
我可以知道比较期间出了什么问题或哪里出错了吗?
答案 0 :(得分:2)
您无法比较此类字符串,您必须使用isEqualToString:
if([tOne isEqualToString:@"Yes"])
{
//blablabla
}
else if([tOne isEqualToString:@"No"])
{
//blablabla
}
答案 1 :(得分:0)
您目前正在比较NSString
对象的地址,而不是其内容。使用compare:
或isEqualToString:
系列方法比较字符串的内容。