iOS应用程序的登录功能,提供异常NSInvalidArgumentException

时间:2013-04-12 09:16:42

标签: ios xcode uistoryboard

我正在XCode中为iOS应用创建一个登录页面。屏幕上有一个登录按钮,以及用户名和密码文本字段。单击该按钮时,应执行用户身份验证,用户应该能够进入下一个屏幕。我使用以下代码:

-(IBAction)validateLogin:(id)sender
{  Gusr = @"";
   Gpass = @"";
    const char *dbpath = [mDatabasePath UTF8String];
    sqlite3_stmt    *statement;
    if (sqlite3_open(dbpath, &mDiary) == SQLITE_OK)
    {
        NSString *querySQL = [NSString stringWithFormat: 
                              @"SELECT mPassword FROM USERDETAIL WHERE mUserName=\"%@\"", 
                              mUserName.text]; 
         const char *query_stmt = [querySQL UTF8String];
        if (sqlite3_prepare_v2(mDiary, 
                               query_stmt, -1, &statement, NULL) == SQLITE_OK)
        {
            if (sqlite3_step(statement) == SQLITE_ROW)
            {

                Gusr =  [[NSString alloc]initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];                    
                Gpass  = [[NSString alloc]initWithUTF8String:(const char *) sqlite3_column_text(statement, 1)];                    

                  //  NSLog(@"'%@'",Gusr);         
                  //  NSLog(@"'%@'",Gpass);        

                if ([mUserName.text isEqualToString:Gusr] && [Gpass isEqualToString:mPassword.text]){
                [self performSegueWithIdentifier:@"Login" sender:self];
                }else {
                    NSLog(@"not valid");
                }
            sqlite3_finalize(statement); 
            }

            sqlite3_close(mDiary); 

        }   


    }     
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"Login"]) {

        // Get destination view
        dashboardViewController *vc = [segue destinationViewController];

        // Get button tag
        NSInteger tagIndex = [(UIButton *)sender tag];

        // Set the selected button in the new view
      //  [vc setSelectedButton:tagIndex];
    }
}

在运行构建时,我遇到以下异常: 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' * - [NSPlaceholderString initWithUTF8String:]:NULL cString'

究竟是什么问题?即使异常得到修复,此代码是否可以成功执行登录?

0 个答案:

没有答案
相关问题