我是iPhone应用程序制作的新手,我正在尝试创建一个简单的页面 - 它就像一个登录页面。我有一个SQLite数据库,它有用户名和密码。 我的GUI是这样的:我有两个文本字段,用户名和密码,还有一个登录按钮。
我找到了创建登录页面的代码,但它不起作用。看看下面的代码,看看我是否出错了。它说“函数的参数太多'isEqualToString:'”
-(void)checkindatabase
{
NSString *txtUsername = @"";
NSString *txtPassword = @"";
NSString *sqlStatement = @"";
NSString *direct = [[NSString alloc]init] ;
NSString *dbPath = [direct stringByAppendingPathComponent:@"journeymapper.db3"];
if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK)
{
sqlStatement = [[NSString alloc] initWithFormat:@"select Username='%@',Password='%@' from UserInformation",txtuser.text,txtpass.text];
//[sql UTF8String];
//NSLog(@"'%s'",[sql UTF8String]);
sqlite3_stmt *statment;
if(sqlite3_prepare_v2(database, [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding], -1, &statment, NULL) == SQLITE_OK)
{
while (sqlite3_step(statment) == SQLITE_ROW)
{
txtUsername = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statment,1)] retain];
txtPassword = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statment, 2)] retain];
}
}
sqlite3_finalize(statment);
sqlite3_close(database);
if([txtUsername isEqualToString:@"%@",_Textuser]&&[txtPassword isEqualToString:@"%@",_Textpass])
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:nil message:@"You are vaild user" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
}
-(IBAction)login
{
[self checkindatabase];
}
答案 0 :(得分:1)
而不是:
[txtUsername isEqualToString:@"%@",_Textuser]
使用:
[txtUsername isEqualToString:_Textuser]
或:
[txtUsername isEqualToString:[NSString stringWithFormat:@"%@",_Textuser]]
正如错误所说,你有太多(2)个参数,方法-isEqualToString:
只需要一个。
答案 1 :(得分:0)
您正在isEqualToString:
你可以像
那样做[txtUsername isEqualToString:[NSString stringWithFormat:@"%@",_Textuser]];