Qua*_*ite 15 core-data ios swift ios9
我有一个InMemory Store Coordinator声明如下:
lazy var ramStoreCoordinator: NSPersistentStoreCoordinator = {
// The persistent store coordinator for the application. This implementation creates and returns a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
// Create the coordinator and store
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
var failureReason = "There was an error creating or loading the application's saved data."
do {
try coordinator.addPersistentStoreWithType(NSInMemoryStoreType, configuration: nil, URL: nil, options: nil)
} catch {
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error as NSError
let wrappedError = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(wrappedError), \(wrappedError.userInfo)")
abort()
}
return coordinator
}()
Run Code Online (Sandbox Code Playgroud)
以及相关的ManagedObjectContext:
lazy var ramManagedObjectContext: NSManagedObjectContext = {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
let coordinator = self.ramStoreCoordinator
var managedObjectContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = coordinator
managedObjectContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
return managedObjectContext
}()
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行这样的获取请求:
let fetchRequest = NSFetchRequest(entityName: "Post")
let batchDelete = NSBatchDeleteRequest(fetchRequest: fetchRequest)
do {
// Execute Batch Request
try ramManagedObjectContext.executeRequest(batchDelete)
} catch {
let updateError = error as NSError
print("\(updateError), \(updateError.userInfo)")
}
Run Code Online (Sandbox Code Playgroud)
这条线:
try ramManagedObjectContext.executeRequest(batchDelete)
Run Code Online (Sandbox Code Playgroud)
使用以下输出崩溃应用程序:
2016-04-30 23:47:40.271 Secret [2368:1047869] *因未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'未知命令类型(实体:EntityName;谓词:((null)); sortDescriptors:((空));类型:NSManagedObjectIDResultType;)>"*第一掷调用堆栈:(0x18145ae38 0x180abff80 0x1833710b0 0x18338991c 0x183391d64 0x101121a3c 0x10112d5f0 0x1833845bc 0x1832c1d5c 0x183354e04 0x10011abc4 0x10011947c 0x100092bf0 0x10009269c 0x1000926ec 0x186a1aac0 0x186a1b258 0x186901854 0x186904a4c 0x1866d4fd8 0x1865e0014 0x1865dfb10 0x1865df998 0x183f4da20 0x101121a3c 0x1011274e4 0x181410dd8 0x18140ec40 0x181338d10 0x182c20088 0x18660df70 0x1000fcba8 0x180ed68b8)libc ++ abi.dylib:以NSException类型的未捕获异常终止
根据我的经验,NSBatchDeleteRequest不适用于NSInMemoryStoreType.我正在尝试同样的方法来测试我的方法,但我将不得不忍住这一点.
编辑:
添加Marcus Zarra的推文作为证据.
| 归档时间: |
|
| 查看次数: |
1225 次 |
| 最近记录: |