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”];之前.
总结以上是内存溢出为你收集整理的objective-c – 在MagicalRecord中使用现有的SQLite数据库全部内容,希望文章能够帮你解决objective-c – 在MagicalRecord中使用现有的SQLite数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)