GBA-8-19/CGame/Extensions/NSManagedObjectContext+Conveniences.swift
bluesea 66c5202be8 s
2024-06-14 18:12:40 +08:00

52 lines
1013 B
Swift

//
// NSManagedObjectContext+Conveniences.swift
// Hthik
//
// Created by Hthik on 2/8/16.
// Copyright © 2016 Hthik. All rights reserved.
//
import CoreData
extension NSManagedObjectContext
{
// MARK: - Saving -
func saveWithErrorLogging()
{
do
{
try self.save()
}
catch let error as NSError
{
print("Error saving NSManagedObjectContext: ", error, error.userInfo)
}
}
// MARK: - Perform -
func performAndWait<T>(_ block: @escaping () -> T) -> T
{
var result: T! = nil
self.performAndWait {
result = block()
}
return result
}
func performAndWait<T>(_ block: @escaping () throws -> T) throws -> T
{
var result: Result<T, Error>! = nil
self.performAndWait {
result = Result { try block() }
}
let value = try result.get()
return value
}
}