2011-11-09 76 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