В сеансе 204 WWDC19 было показано, как создать пользовательский интерфейс, используя Swift 5.1 и функцию List
.
Я хотел бы использовать Core Data вместо файла данных.
Проблема заключается в том, что основной объект данных не соответствует протоколу идентификации.
Я много искал в сети и смотрел несколько видео с основными данными, но все они устарели. Ни одна из них не охватывает Swift 5.1 и новые бета-функции (например, List
).
Я создаю сущность с некоторыми полями (name, id -> которая является UUID).
Затем я вручную создаю исходные файлы, показанные ниже:
AccountsMO+CoreDataClass.swift
:
import Foundation
import CoreData
public class AccountsMO: NSManagedObject
{
}
А AccountsMO+CoreDataProperties.swift
:
import Foundation
import CoreData
extension AccountsMO
{
@nonobjc public class func fetchRequest() -> NSFetchRequest<AccountsMO>
{
return NSFetchRequest<AccountsMO>(entityName: "Accounts")
}
@NSManaged public var balance: NSDecimalNumber?
@NSManaged public var id: UUID
@NSManaged public var name: String
@NSManaged public var type: Int16
}
Они работают, но я не могу использовать их в Списке, потому что они не соответствуют Протоколу идентификации.
Я предполагаю, что есть какой-то способ добавить это, но я не могу найти его ни в основном объекте данных, ни здесь.
Я загружаю свои данные в файл ContentView
и пытаюсь использовать их в списке. В зависимости от того, что я пытаюсь, я получаю либо ', неспособный определить тип возврата сложного замыкания; добавить явный тип для устранения неоднозначности ', ИЛИ Я получаю ', не соответствующий идентифицируемому протоколу '.