objective-c – 在MagicalRecord中使用现有的SQLite数据库
发布时间:2020-12-16 10:33:53 所属栏目:百科 来源:网络整理
导读:我创建了一个SQLite数据库,其中包含使用 this tutorial的一些JSON的记录,我想使用MagicalRecord来查询它. MagicalRecord看到NSManagedObject(BlogPost)并且可以创建记录,但是它没有看到预先填充的记录,所以我猜它没有看到我添加的SQLite文件.我已经验证了SQL
我创建了一个SQLite数据库,其中包含使用
this tutorial的一些JSON的记录,我想使用MagicalRecord来查询它.
MagicalRecord看到NSManagedObject(BlogPost)并且可以创建记录,但是它没有看到预先填充的记录,所以我猜它没有看到我添加的SQLite文件.我已经验证了SQLite数据库确实包含使用SQLite客户端的行. 在应用程序中:didFinishLaunchingWithOptions:,我把: [MagicalRecord setupCoreDataStackWithStoreNamed:@"DBG.sqlite"]; 并在applicationWillTerminate :: [MagicalRecord cleanUp]; 当我在控制器中调用[BlogPost MR_findAll]时,它返回一个空集. DBG.sqlite位于项目目录的根目录下,我尝试将其放入“Copy Bundle Resources”中,但blogPosts仍然返回一个空集. 有任何想法吗? 解决方法
问题最终是需要将预加载的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."); } } 这应该放在[MagicalRecord setupCoreDataStackWithStoreNamed:@“DBG.sqlite”];之前. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net(c#) 使用Rex正则来生成字符串数组的代码
- 错误类型:cvc-complex-type-2-3
- Oracle SQL WHERE子句中的()符号是什么意思?
- c# – Index的替代原因在.Net字典中的数组的边界之外
- 关于postgresql性能调整的一些文档
- 收集的ORACLE函数大全
- The string "--" is not permitted within comm
- ruby-on-rails – 您何时将应用程序升级到Rails 3?
- ruby-on-rails – 学习RoR和Mongo,为什么不计算数组的投票
- iphone – transitionWithView和animateWithDuration的问题