崩溃

2012-01-17 140 views
0

我使用FMDB APIS使用下面的链接继续用在我的项目数据库:在第一步的创建和对象//github.com/ccgus/fmdb崩溃

:HTTPS FMDatabase并获得DB链接:

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]; 
} 

现在我想从字段写入数据在按钮的Clik。我写下面的代码:

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

看起来好像你不是在某些时候保持dbObject。错误消息表示您正在将open消息发送到NSString的实例。这意味着用于包含您的FMDatabase对象的内存现在被一个字符串占用。

+0

好的,我应该保留它的财产吗? – Shah 2012-01-17 13:30:35

+0

如果你有一个属性的值(你不在上面的代码中),那么它应该被设置为'retain',并且你应该用'self.dbObject = ...'表示赋值给它。 – 2012-01-17 13:54:18