2011-11-17 65 views
0

我有這些代碼從SQLite數據庫檢索值並將其與頭文件中聲明的NSString進行比較。比較NSString到SQLite數據庫字段

從數據庫中檢索:

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

您目前正在比較NSString對象的地址,而不是其內容。使用compare:isEqualToString:系列方法比較字符串的內容

Reference

2

你不能比較字符串這樣,你必須使用isEqualToString:

if([tOne isEqualToString:@"Yes"]) 
{ 
    //blablabla 
} 
else if([tOne isEqualToString:@"No"]) 
{ 
    //blablabla 
}