Здравствуйте! У меня есть объект, который зарегистрирован как сущность в моих coreData, которая наследуется от NSManagedObject.
Вызов для создания объекта и его сохранения выглядит следующим образом:
let user = User(context: PersistenceService.context)
user.name = "My name"
user.address = "My Address"
Но я не всегда хочу, чтобы, когда я создаю объект, он записывался в постоянном режиме, я тоже хотел его так называть:
let user = User()
user.name = "My name"
user.address = "My Address"
Но когда я это так называю, мое приложение для аварийного завершения.
Как я могу создать несколько init () в соответствии с моими потребностями?
Вот мой класс обслуживания персистентности:
class PersistenceService {
// MARK: - Core Data stack
private init() {}
static var context: NSManagedObjectContext {
return persistentContainer.viewContext
}
static var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "Database")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
// MARK: - Core Data Saving support
static func saveContext () {
let context = persistentContainer.viewContext
if context.hasChanges {
do {
try context.save()
print("SAVED")
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
}
Я уже смотрю на вопрос других людей, но он не соответствует тому, что я ищу, и его цель C я не понимаю цели C я хочу быстро, я использую отделенный класс PersistenceService
спасибо