我正在使用Xcode 6.4,开发需要使用数据库的iOS 8应用程序。我在我的数据库中插入了一些信息(“something.db”文件)。我想看看“something.db”的内容,看看我插入了什么。如何查看其内容?
这是我创建数据库“company.db”的代码和表“Staff”(ID PK,NAME TEXT,AGE INTEGER):
-(void) createOrOpenDB {
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [path objectAtIndex:0];
dbPathString = [docPath stringByAppendingPathComponent:@"company.db"];
char *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:dbPathString]) {
const char *dbPath =[dbPathString UTF8String];
if(sqlite3_open(dbPath, &personDB)==SQLITE_OK) {
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS Staff (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, AGE INTEGER)";
sqlite3_exec(personDB, sql_stmt, NULL, NULL, &error);
sqlite3_close(personDB);
}
}
}
这是我将信息插入“员工”表格的代码:
- (IBAction)addPersonButton:(id)sender {
char *error;
if(sqlite3_open([dbPathString UTF8String], &personDB) == SQLITE_OK) {
NSString *insertStmt = [NSString stringWithFormat:@"INSERT INTO Staff (NAME, AGE) values ('%s', '%d')", [self.nameField.text UTF8String], [self.ageField.text intValue]];
const char *insert_stmt = [insertStmt UTF8String];
if(sqlite3_exec(personDB, insert_stmt, NULL, NULL, &error) == SQLITE_OK) {
NSLog(@"Person added");
Person *person = [[Person alloc] init];
[person setName:self.nameField.text];
[person setAge:[self.ageField.text intValue]];
[arrayofPerson addObject:person];
}
sqlite3_close(personDB);
}
}
代码运行良好,因为我能够在tableview中显示“Staff”表的信息。但是如何在.db文件中查看该信息?
p / s:我将其更改为“something.xls”,但Excel不显示人类可读的信息。我还下载了Fileviewpro但不知道如何使用。有人帮帮我!
非常感谢!
答案 0 :(得分:0)
您可以使用任何旨在查看sqlite文件内容的应用。例如:http://sqlitebrowser.org
如果您在模拟器上运行,则可以使用~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/
进入模拟器,只需将长UDID
替换为您的设备。