XCode4 - 在哪里寻找由核心数据创建的 sqlite 文件
Posted
技术标签:
【中文标题】XCode4 - 在哪里寻找由核心数据创建的 sqlite 文件【英文标题】:XCode4 - where to look for sqlite file created by core data 【发布时间】:2011-06-28 13:42:28 【问题描述】:我刚刚开始使用核心数据。我想设置一个预先填充的数据库。我在某处读到核心数据在运行核心数据应用程序时会创建一个 sqlite 文件。不过我不知道去哪里找。
我按照blog 上的说明进行操作,但在指定位置目录/Users/<Username>/Library/Application Support/iPhone Simulator/User/Application/<Application GUID>/Documents/<database name.sqlite>
和应用程序目录中都没有找到sqlite 文件。
这是我的 persistentCoordinator 代码。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
if (__persistentStoreCoordinator != nil)
return __persistentStoreCoordinator;
NSString *storePath = [[[self applicationDocumentsDirectory] path] stringByAppendingPathComponent:@"coredata.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath])
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"coredata" ofType:@"sqlite"];
if (defaultStorePath)
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
NSURL *storeURL = [NSURL fileURLWithPath:storePath];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
return __persistentStoreCoordinator;
【问题讨论】:
【参考方案1】:这些文件在我的 ~/Library/Application Support/iPhone Simulator/[SDK version]/Applications/[App GUID]/Documents
中,对于 Xcode 3 和 Xcode 4 都适用。
如果您有多个 SDK,请务必查看您应用的所有不同 SDK 版本目录。
【讨论】:
如何知道App GUID?【参考方案2】:对我来说,它位于 whatMuregSaid/[Application Guid]/Library/Application Support/[AppName]/filename.sqlite
【讨论】:
【参考方案3】:按照以下步骤操作:
在 AppDelegate.swift 的 applicationDocumentsDirectory
函数中添加以下代码:
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
// Look for this in the console, this will print out the location of the sqlite database, which you can then open with an SQLite viewer
print("urls.last \(urls.last)")
在控制台找这个,这会打印出sqlite数据库的位置,打开你的终端和open whatever_the_location_path_was
下载SQLite查看器http://sqlitebrowser.org/
右击文件夹中的yourapp.sqlite文件,选择用你下载的sqlitebrowser打开
干杯!
【讨论】:
【参考方案4】:希望对你有所帮助
/Users/Username/ 然后按 cmd+shift+G 并写入 /Users/Username/Library,现在您将在进入 Application Support/iPhone Simulator/7.1(或 7.1-64)后看到 Library 文件夹/应用程序/F84D4CC8-326E-4A2E-8A37-F1A755D6FCC4/文件 你会看到三个文件,一个是 .sqlite 文件。
要查看这个sqlite文件的结构和其他信息,最有效的方法是使用SQLITE MANAGER(firefox的add on https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/)添加它,然后点击TOOL。
【讨论】:
以上是关于XCode4 - 在哪里寻找由核心数据创建的 sqlite 文件的主要内容,如果未能解决你的问题,请参考以下文章
我在哪里可以获得 Laravel 事件的完整列表(由核心库触发)?