所以我让SQLite数据库为我的应用程序工作。它从数据库加载文本值,将其复制到数组并在表视图中显示。
我第一次接受它时,周二,周四,周六显示值。然后我使用SQLite管理器插件为firefox修改了数据库(我也使用它来创建它),方法是添加新值。但是,新值不显示,即使我删除像星期六这样的值,同样的旧“星期二,星期四,星期六”也会重新出现。我很困惑。
注意:
在appdelegate:(BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions我在开始时有这段代码
routines = nil; // Reset array
database = nil; // not opened yet
selStmt = nil; // no compiled statement yet
updStmt = nil; // no compiled statement yet
我正在关注本教程并根据我的需要对其进行修改: http://technologyservants.com/index.php?option=com_content&view=article&id=46:shopping-list-an-iphone-sqlite-tutorial
答案 0 :(得分:5)
如果文档目录中尚不存在数据库,您可能正在将应用程序包中的数据库复制到文档目录中。
下次运行应用程序(使用新数据库)时,检查用户文档目录中是否存在数据库,然后您可能不会再次复制它。您不是在比较db的版本,而只是检查具有该名称的db是否存在。
如果您仍在开发中,一个简单的解决方案就是清除重置模拟器的内容和设置,这将导致您的应用再次复制数据库。
答案 1 :(得分:2)
正如Firoze在第一次加载时所说的那样(我只是略读了教程,所以请原谅我),数据库从包中复制到文档目录中。对于之后的每次启动,都不需要将数据库复制出来,因为它已经存在。
如果您正在使用模拟器并希望更改数据以便在工作时实时反映,则需要打开位于
的数据库/Users/<username>/Library/Application Support/iPhone Simulator/4.3.2/Applications/<app bundle identifier>/Documents/<database file>
该文件可能不在确切的位置,但它可以让您了解从哪里开始查看