我正在为ipad开发一个应用程序,我正在使用sqlite语句(选择,更新,插入,删除).
我在开头打开(sqlite3_open)数据库,在每个句子的末尾关闭(sqlite3_close).但有时候我有“数据库被锁定”的消息.
我不知道我能做些什么来解决这个问题.
谢谢,抱歉这个小信息.
如果我没有弄错的话,sqllite的问题是你一次只能访问一次.
如果您有多个线程,则可以在这种情况下运行.例:
原文链接:https://www.f2er.com/sqlite/197746.html如果您有多个线程,则可以在这种情况下运行.例:
在线程t1上运行method1(访问数据库).
在x秒后在线程t2上运行method2(访问数据库).
如果在这些x秒内没有完成method1,则两个方法将同时访问它.
而且,正如我所说,我知道sqllite不支持这一点.
您应该尝试标记数据库的使用情况,如果要访问它但它正在使用中,请在x秒后再试一次.喜欢这个:
- (void) generalMethodThatUsesDatabses { if(databaseIsUsed) { [self performSelector:@selector(generalMethodThatUsesDatabses) withObject:nil afterDelay:5]; return; } databaseIsUsed = TRUE; //global bool variable //your code here databaseIsUsed = FALSE; }
希望这可以帮助.干杯!