Сбой приложения при открытии базы данных в Iphone - PullRequest
0 голосов
/ 17 января 2012

Я использую FMDB APIS для использования базы данных в моем проекте по следующей ссылке: https://github.com/ccgus/fmdb

в первом шаге i Создайте объект FMDatabase и получите ссылку на БД:

FMDatabase *dbObject = [FMDatabase databaseWithPath:dbPath];

Теперь я открываю базу данных, используя следующий код:

 if (![dbObject open]) {
    NSLog(@"Could not Open Database");
}else {
    NSLog(@"Database Opened!");
    [dbObject executeUpdate:@"create table user(id integer primary key autoincrement, f_name text, l_name text, session_id text)"];
    [dbObject close];
}   

Теперь я хочу записать данные на кнопку кнопки из полей. Я пишу следующий код:

if (![dbObject open]) {
    NSLog(@"Could not Open Database");
}else {
    NSLog(@"Database Opened!");
    [dbObject executeUpdate:@"insert into user(f_name, l_name, session_id) values(?,?,?)",loginObject.fName, loginObject.lName, loginObject.sessionId,nil];
    [dbObject close];
}

Теперь, когда я снова открою БД здесь. в том же виде контроллер. это дает мне следующую ошибку. Обратите внимание, что в первый раз он открывает базу данных, а в следующий раз - нет. Я не знаю, в чем проблема. Пожалуйста, руководство.

Ошибка, которую я получил:

[NSCFString open]: unrecognized selector sent to instance 0x4e21630

1 Ответ

1 голос
/ 17 января 2012

Похоже, что вы не удерживаете dbObject в какой-то момент. В сообщении об ошибке говорится, что вы отправляете сообщение open экземпляру NSString. Это означает, что память, которая раньше содержала ваш FMDatabase объект, теперь занята строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...