Tom*_*Tom 3 core-data objective-c magicalrecord
我使用本教程创建了一个包含来自某些JSON的记录的SQLite数据库,我想使用MagicalRecord来查询它.
MagicalRecord看到NSManagedObject(BlogPost)并且可以创建记录,但是它没有看到预先填充的记录,所以我猜它没有看到我添加的SQLite文件.我已经验证了SQLite数据库确实包含使用SQLite客户端的行.
在application:didFinishLaunchingWithOptions:,我把:
[MagicalRecord setupCoreDataStackWithStoreNamed:@"DBG.sqlite"];
Run Code Online (Sandbox Code Playgroud)
并在applicationWillTerminate::
[MagicalRecord cleanUp];
Run Code Online (Sandbox Code Playgroud)
当我[BlogPost MR_findAll]在控制器中调用时,它返回一个空集.DBG.sqlite位于项目目录的根目录下,我尝试将其放入"Copy Bundle Resources"中,但blogPosts仍然返回一个空集.
有任何想法吗?
Tom*_*Tom 13
问题最终是需要将预加载的SQLite数据库复制到应用程序数据库的默认路径:
NSArray *paths = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
NSURL *documentPath = [paths lastObject];
NSURL *storeURL = [documentPath URLByAppendingPathComponent:@"DBG.sqlite"];
if (![[NSFileManager defaultManager] fileExistsAtPath:[storeURL path]]) {
NSURL *preloadURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"DBG" ofType:@"sqlite"]];
NSError* err = nil;
if (![[NSFileManager defaultManager] copyItemAtURL:preloadURL toURL:storeURL error:&err]) {
NSLog(@"Error: Unable to copy preloaded database.");
}
}
Run Code Online (Sandbox Code Playgroud)
这应该放在之前[MagicalRecord setupCoreDataStackWithStoreNamed:@"DBG.sqlite"];.
| 归档时间: |
|
| 查看次数: |
3408 次 |
| 最近记录: |