- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我修改了通过核心数据应用程序获得的样板核心数据堆栈代码,将两个 NSPersistentStore
添加到 NSPersistentStoreCoordinator
而不是一个。
// MARK: - Core Data stack
lazy var applicationDocumentsDirectory: NSURL = {
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
return urls[urls.count-1] as NSURL
}()
lazy var managedObjectModel: NSManagedObjectModel = {
let modelURL = NSBundle.mainBundle().URLForResource("DB", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
var error: NSError? = nil
let firstStoreURL = self.applicationDocumentsDirectory.URLByAppendingPathComponent("first-store.sqlite")
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: firstStoreURL, options: nil, error: &error) == nil {
coordinator = nil
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
let secondStoreURL = self.applicationDocumentsDirectory.URLByAppendingPathComponent("second-store.sqlite")
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: secondStoreURL, options: nil, error: &error) == nil {
coordinator = nil
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
return coordinator
}()
lazy var managedObjectContext: NSManagedObjectContext? = {
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext()
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
// MARK: - Core Data Saving support
func saveContext() {
if let moc = self.managedObjectContext {
var error: NSError? = nil
if moc.hasChanges && !moc.save(&error) {
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
}
}
我需要在添加 NSManagedObject
对象时指定商店,如下所示。
let someObject = NSManagedObject(entity: "someEntity", insertIntoManagedObjectContext: context)
context.assignObject(someObject, toPersistentStore: <store instance>)
并指定我需要从中获取数据的商店。
let entityDescription = NSEntityDescription.entityForName("someEntity", inManagedObjectContext: context)
let fetchRequest = NSFetchRequest()
fetchRequest.entity = entityDescription
fetchRequest.affectedStores = [<store instance>]
我的问题是如何获得对在 AppDelegate 中创建的那些 NSPersistentStore
的引用?
明确一点,我已经知道如何获取对 AppDelegate 本身的引用。
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
获取 NSPersistentStore
部分是我卡住的地方。
我试过像这样在 AppDelegat 中将它创建为一个单独的属性,但我不知道如何从 persistentStoreCoordinator
调用它/添加它。
var firstStore: NSPersistentStore {
var store: NSPersistentStore!
if let coordinator = persistentStoreCoordinator {
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("first-store.sqlite")
var error: NSError?
store = coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error: &error)!
}
return store
}
此外,每当我调用此属性时,它不会向协调器添加一个新的商店实例吗?
最佳答案
有一个persistentStores
property在 NSPersistentStoreCoordinator
上,您可以用于此目的。它返回一个(大概)NSPercientStore
实例的数组。
// Get the first store, assuming it exists
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let firstStore = appDelegate.persistentStoreCoordinator.persistentStores[0] as NSPersistentStore
关于ios - 引用在 AppDelegate 中创建的 NSPersistentStore 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074157/
我想将文件移至我的 iOS 应用程序的 CoreData 存储 ../Library/Application Support/MyApp/ 至 ../Documents/Stores/ 我可以使用 N
我有一个 iOS 应用程序,我在其中使用 coreData 来存储我的“文档”。它们都共享一个公共(public)的 NSManagedObjectContext,我经常保存上下文。 我想跟踪各种“文
我正在尝试在我的 CoreData+CloudKit 项目中执行历史跟踪,该项目使用 NSPersistentCloudKitContainer .我一直在关注 Apple 的 sample proj
Swift版本:swift3.0目标iOS版本:10.0 我尝试为涉及核心数据的函数编写单元测试。所以我想做的第一件事就是用 NSPersistentStore 类型初始化类变量。 这是我的类变量代码
我正在尝试将我的 NSPersistentStore 从我的应用程序的沙箱移动到共享组容器,以便我可以从我的 WatchKit 扩展访问 CoreData。我目前正在将 Core Data 与 iCl
长话短说,我的 Core Data 模式被更改,我的应用程序被提交到应用程序商店,这导致所有更新应用程序的人都崩溃了。崩溃是由于未正确迁移数据模型而导致缺少 NSPersistentStore 造成的
我正在开发一个分阶段推出的应用程序。对于每个冲刺,都有数据库更改,因此已经实现了核心数据迁移。到目前为止,我们已经发布了 3 个阶段。每当完成连续渐变时,应用程序运行良好。但是每当我尝试从版本 1 升
我正在尝试让 NSPersistentStoreCoordinator 管理多个持久存储的删除和插入。到目前为止,我已经成功地为 PSC 配置了两个商店,并且我已经能够通过指定其索引来删除其中一个商店
let managedModel:NSManagedObjectModel = NSManagedObjectModel.mergedModelFromBundles(nil)! va
有没有办法在知道 URL 的情况下检索 NSPersistentStore? 类似于: NSURL *url = @"aaa\bbbb\ccc\xyz.sqlite" NSPersistenStore
我正在探索 Core Data 自定义迁移,为此我需要在现有商店上运行测试以查看它是否与当前加载的妈妈兼容。为此,我需要从商店获取元数据。 所以我在 AppDelegate 类中这样做: NSFile
我想将只读示例/教程数据添加到基于 Core Data 的 macOS 应用程序。 我将在包含示例数据的应用程序包中包含一个 SQL 文件。我的 NSPercientContainer 将有 2 个
我正在(通过 Dropbox)实现用户的Core Data 持久数据的备份和恢复。为了进行恢复,我从 Dropbox 中提取文件并将它们临时存储在 Documents 目录中。然后,我创建一个新的 N
我修改了通过核心数据应用程序获得的样板核心数据堆栈代码,将两个 NSPersistentStore 添加到 NSPersistentStoreCoordinator 而不是一个。 // MARK: -
这是我正在尝试做的事情: 我使用 NSFetchedResultsController 执行提取并使用其委托(delegate)跟踪更改 我下载了一些数据,根据某些情况,我有时会通过删除 NSPers
我正在开发一个带有 Core Data 的应用程序,它会定期从网络服务下载所有数据。由于下载可能会失败或被用户取消,因此我希望能够回滚到之前的状态。我尝试撤消 NSManagedObjectConte
此代码显示我的错误所在的位置: do { //error showing at this line if try coordinator!.addPersistentS
我花了很长时间来找出正确的方法来创建 Core-Data 支持的 .sqlite 文件的备份并将该备份存储在本地和/或 iCloud 中(无论用户喜欢什么)以供下载、还原或分享。让我先声明一下,我不是
我正在尝试将 SQLCipher 添加到一个使用 Magical Record 库来加密数据库的 iOS 项目。还使用加密核心数据项目中的 EncryptedStore 类:https://githu
我是一名优秀的程序员,十分优秀!