如何在iOS中安装的应用程序中查看sqlite db进行测试

时间:2017-01-20 06:40:27

标签: ios xcode sqlite

我已在模拟器中安装了我的应用程序,需要查看数据库。请告诉我应用程序查看此内容,或者我可以从Xcode本身查看它。

enter image description here

DATABASE

//database connection
con = [[DataBase alloc]init];
NSError *error = [[NSError alloc]init];
NSFileManager *filemanager = [NSFileManager defaultManager];

NSArray *arryPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *DocumentPath = [arryPath objectAtIndex:0];
NSString *strDocumentPath = [DocumentPath stringByAppendingPathComponent:@"School.sqlite"];

// check file is exist or not
int success = [filemanager fileExistsAtPath:strDocumentPath];

//if file not exist at path
if (!success) {
    NSLog(@"SchoolName is: %@",@"No Database exist");
    NSString *strDefaultPath = [[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"School.sqlite"];
    success = [filemanager copyItemAtPath:strDefaultPath toPath:strDocumentPath error:&error];

    if (!success) {
        NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
    }
}
//file exist at path
if (success) {
    NSLog(@"SchoolName is: %@",@" Database exist");
    if (sqlite3_open([strDocumentPath UTF8String],&database) == SQLITE_OK) {

    } else {
        sqlite3_close(database);
        NSAssert1(0, @"Failed to open database with message '%s'.", sqlite3_errmsg(database));
    }
}

5 个答案:

答案 0 :(得分:1)

尝试使用客户端,例如从这里http://sqlitebrowser.org/并打开sqlite文件。

答案 1 :(得分:1)

  • 在Mac中为Sqlite安装数据库浏览器。
  • 将应用程序的文档目录中的.sqlite路径提供给数据库浏览器
  • 它将从模拟器
  • 打开实时数据库
  • Core Data的所有实体都将具有ZTablename命名约定
  • 在测试期间继续刷新数据库浏览器以获取更新的数据

答案 2 :(得分:1)

如果您在PC上安装了firefox,使用“SQLite Manager”插件非常好,它很简单,轻松,免费。我之前用它来管理我的sqlite数据库,有大约40k的记录没有问题。 https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

答案 3 :(得分:0)

对于实时数据库更改,请尝试以下操作:

1.为SQLite安装DBBrowser。

2.使用NSLog在控制台中记录strDocumentPath并复制路径。

3.打开DBBrowser并打开数据库,在finder中按CMD + SHIFT + G并粘贴你的链接,然后按ENTER键。您将被重定向到该位置。

4.选择您的SQLite文件,它将在DBBrowser中打开。并保持它,直到你完成数据库工作。

现在,无论何时从DBBrowser刷新数据库,您都将获得DB中的最新更改,同时DB中的任何手动更改都将在您的模拟器中生效。

答案 4 :(得分:0)

这是我这样做的一种方式

"open (path/of/printed/path)"

指向调试器指向路径,当设备被锁定时,将打印到路径,然后打开终端,并在超过打印值的之间()之间使用此命令word_index = imdb.get_word_index() reverse_word_index = dict([(value, key) for (key, value) in word_index.items()]) decoded_review = ' '.join([reverse_word_index.get(i - 3, "") for i in train_data[0]])