В настоящее время я работаю над проектом с многопользовательской системой . Пользователь может создавать новые профили, которые постоянно сохраняются с использованием CoreData .
Моя проблема: только один профиль может быть активным в одно время , поэтому я хотел бы получить ObjectID созданного профиля и сохранить его в UserDefaults .
Далее я подумал, что как только мне понадобятся данные активного профиля, я могу просто получить ObjectID из UserDefaults и выполнить READ - Запрос , который возвращает мне только результат с этим специфика c ObjectID .
Мой код для сохранения данных:
// 1. Create new profile entry to the context.
let newProfile = Profiles(context: context)
newProfile.idProfileImage = idProfileImage
newProfile.timeCreated = Date()
newProfile.gender = gender
newProfile.name = name
newProfile.age = age
newProfile.weight = weight
// 2. Save the Object ID to User Defaults for "activeUser".
// ???????????????????
// ???????????????????
// 3. Try to save the new profile by saving the context to the persistent container.
do {
try context.save()
} catch {
print("Error saving context \(error)")
}
Мой код для ЧТЕНИЯ ДАННЫХ
// 1. Creates an request that is just pulling all the data.
let request: NSFetchRequest<Profiles> = Profiles.fetchRequest()
// 2. Try to fetch the request, can throw an error.
do {
let result = try context.fetch(request)
} catch {
print("Error reading data \(error)")
}
Как видите, я не смог для реализации Часть 2 первого кодового блока . Новый профиль сохраняется, но ObjectID не сохраняется в UserDefaults.
Также Сторона 1 второго блока кода не является конечной целью. Запрос только возвращает вам все данные этой сущности, а не только те, у которых ObjectID, который я сохранил в пользовательских настройках по умолчанию.
Надеюсь, у вас есть идея, как решить эту проблему. Заранее спасибо, ребята, за помощь!