2011-11-09 77 views
3

您好我正在比較來自數據庫的UserName(char *)和來自UITextField的UserName(NSString *)。這個怎麼做。 以下是我的代碼如何比較char *和NSString?

if ([UserName isEqual:(char *)sqlite3_column_text(statement, 0)]) { 

    NSLog(@"User Already Exists."); 
    flag = YES; 
    return; 
} 

但它從來沒有進入環,雖然我給相同的用戶名在數據庫中。

回答

9

假設以下是NSString你有。

NSString *userName = @"SomeOnesName"; 

從DB獲得C-字符串,並將其轉換爲的NSString

NSString *userNameFromDB = [NSString stringWithCString:sqlite3_column_text(statement, 0) encoding:NSUTF8StringEncoding]; 

現在的比較。

if ([userName isEqualToString:userNameFromDB]) { 
+0

您正在忽略潛在的編碼問題。 – JeremyP

+0

@JeremyP,謝謝指出。我還在做嗎? – EmptyStack

+0

只要它在UTF-8數據庫中就好多了:) – JeremyP