• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - SQLite 数据库在更新时挂起

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:24:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已经研究了几个小时的问题,如果有任何外部意见,我将不胜感激。我是 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap