您好我正在使用FMDB从SQLITE数据库中检索数据。
db = [[FMDatabase alloc] initWithPath:path];
[db open];
FMResultSet *fResult= [db executeQuery:@"SELECT * FROM Users"];
aUsers = [[NSMutableArray alloc] init];
while([fResult next])
{
userData = [fResult stringForColumn:@"Name"];
lblUsers.text=[lblUsers.text stringByAppendingString:userData];
[aUsers addObject:userData];
NSLog(@"The data is %@=",userData);
}
[db close];
[aUsers release];
[db release];
所以我得到了这个程序的输出
Sachin Rahul Dravid
但是当我尝试将数据插入数据库时, 我使用了以下编码
[db beginTransaction];
[db executeUpdate:@"insert into users (name) values('Balaji R')" ,nil];
[db commit];
现在我再次从数据库中检索数据。 所以我得到了这样的输出
Sachin Rahul Dravid Balaji R
但是当我退出我的应用程序然后再次使用它时, 现在我只看到旧记录
Sachin Rahul Dravid
插入录制的“Balaji R”消失了!
有人知道我在哪里犯了错误吗?请告诉我解决方案......
答案 0 :(得分:2)
您正在尝试写入不允许的应用包目录。您必须将起始数据库复制到用户的Documents目录,并将副本的路径传递给FMDB initWithPath:
查看iOS Application Programming Guide。看一下CoreDataBooks示例代码。 App Delegate包含persistentStoreCoordinator
方法中的代码,您可以将其用作实施指南。