0

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'

問題は正確には何ですか?また、例外が修正されたとしても、このコードはログインを正常に実行しても問題ありませんか?

4

0 に答える 0