OGeek|极客世界-中国程序员成长平台

标题: ios - SQLite 数据库在更新时挂起 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:24
标题: ios - SQLite 数据库在更新时挂起

我已经研究了几个小时的问题,如果有任何外部意见,我将不胜感激。我是 iOS、Objective-C 和 SQLite 的新手,正在尝试执行 SQLite 更新语句。问题是 UI 卡住并且似乎卡在 SQLite 中的某个进程中。

代码如下:

NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent"SQLite3Database.sqlite"];
SQLite3_instance *db = [SQLite3_instance databaseWithPath:path]; 
[db open];

NSString *execUpdate = [NSString stringWithFormat"update ListItem set status=%i,message=\"%@\",GPSLong=%@, GPSLat=%@,lastUpdated=DateTime('now') where userID = %@",[Status_Picker selectedRowInComponent:0],messageTextField.text , longitude, latitude,loggedinUserID];
NSLog(@"execUpdate: %@", execUpdate);
if (![db executeUpdate:execUpdate])
    NSLog(@"Data insert failed %@", db.lastErrorMessage);

此代码在单击 UIButton 后在 IBAction 中执行,但如前所述,UI 在进程中挂起。上述代码的输出如下:

*execUpdate: update ListItem set status=0,message="",GPSLong=44.48916, GPSLat=6.28739,lastUpdated=DateTime('now') where userID = 1*

谁能看到这段代码是怎么挂的?

看起来问题是 Xcode 内存泄漏。在我的头撞到墙上几个小时后,关闭并再次启动它解决了这个问题。



Best Answer-推荐答案


您确定另一个进程/线程没有针对数据库打开事务吗?这会导致这种行为。

关于ios - SQLite 数据库在更新时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215770/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4