Я знаю, что есть похожие вопросы, но я потратил часы, пытаясь найти соответствующий результат для моей ситуации без успеха.
У меня есть одна сущность: EntityDate.
У сущности есть 2 атрибута: дата и время
У меня есть переменная «дата», которую я сохраняю в виде строки для основных данных, например:
addToCoreData(name: getDateFormatted(), entityName: "EntityDate", key: "date")
func addToCoreData(name: String, entityName: String, key: String) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: entityName, in: context)
let newEntity = NSManagedObject(entity: entity!, insertInto: context)
newEntity.setValue(name, forKey: key)
do {
try context.save()
print("saved")
} catch {
print("Failed saving")
}
}
Позже в моем коде я получаю такие данные:
var dateFromCD = getCoreData(Entity: "EntityDate")
func getCoreData(Entity: String) -> Array<NSManagedObject>{
var coreData= [NSManagedObject]()
coreData= []
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: Entity)
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
for data in result as! [NSManagedObject]
{
coreData.append(data)
}
} catch {
print("Failed")
}
return coreData
}
Теперь я думал, что добавлю переменное время к отдельному атрибуту «время», и, естественно, я поступил так:
addToCoreData(name: getFormattedTime(), entityName: "EntityDate", key: "time")
Проблема, с которой я столкнулся, заключается в том, что вызов функции "getCoreData (Entity:" EntityDate ")", она дает мне такой вывод
[<EntityDate: 0x6000034fc2d0> (entity: EntityDate; id: 0xc229f3dcff76efb1 <x-coredata://2E6F1D46-F49D-436C-9608-FEC59EEB21E6/EntityDate/p18>; data: {
date = "2/21/20";
time = nil;
}), <EntityDate: 0x6000034fc320> (entity: EntityDate; id: 0xc229f3dcff72efb1 <x-coredata://2E6F1D46-F49D-436C-9608-FEC59EEB21E6/EntityDate/p19>; data: {
date = nil;
time = "13:46";
})]
Я не понимаю вывод, и я хотел бы иметь возможность получить только дату и время как две отдельные переменные из массива.