我没有找到满足我的答案,我可以将数据插入数据库,我也可以在模拟器上从中选择,但是当我关闭模拟器并再次打开它时,我看不到任何数据。我也在终端上打开它,我没有看到任何数据。 我错过了任何一行还是有任何逻辑错误?
你尝试了什么?对我有什么建议吗?
我在我的代码中插入数据是这样的:
databasePath = [[NSBundle mainBundle] pathForResource:@"persons" ofType:@"sqlite3"];
const char *dbpath = [databasePath UTF8String];
sqlite3_stmt *statement;
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO person (id, name, address, photograph, telephone, fax, district) VALUES (\"%i\",\"%@\", \"%@\", \"%@\",\"%@\",\"%@\",\"%@\")", i, Name,Addresses, Image, Telephone,Fax,District];
const char *query_stmt = [insertSQL UTF8String];
sqlite3_prepare_v2(contactDB, query_stmt, -1, &statement, NULL);
if (sqlite3_step(statement) == SQLITE_DONE)
{
// NSLog(@"OK");
} else {
// NSLog(@"Problem!!!");
}
sqlite3_finalize(statement);
sqlite3_close(contactDB);
}
答案 0 :(得分:1)
您无法对主数据包中的数据库进行更改,因为它是只读的。
您必须先将其复制到可以写入的位置,例如用户文档或缓存目录。
iOS data storage guidelines指定应保存的位置,具体取决于数据类型。
答案 1 :(得分:1)
我正在寻找相同的答案,因为我也被困住了,我认为其他人的帖子here给出了一个很好的例子。
以下是Inafziger给出的链接信息:
iOS数据存储指南 iCloud包括Backup,它每天通过Wi-Fi自动备份用户的iOS设备。除了应用程序包本身,缓存目录和临时目录之外,还会备份应用程序主目录中的所有内容。还备份购买的音乐,应用程序,书籍,相机胶卷,设备设置,主屏幕和应用程序组织,消息和铃声。由于备份是通过无线方式完成的并存储在iCloud中,因此最好尽量减少为应用程序存储的数据量。大文件会延长执行备份所需的时间,并消耗更多用户可用的iCloud存储空间。
为确保备份尽可能高效,请务必按照以下准则存储应用的数据: