Sou novo no CoreData, mas criei um objeto que pretendo usar como uma matriz dentro de um loop ForEach no SwiftUI.
No editor de entidades, adicionei um atributo UUID stored_id
. Em seguida, em uma extensão, escrevi isto:
extension Item: Identifiable {
public var id: UUID {
guard let stored_id else {
assertionFailure("No stored ID")
return UUID()
}
return stored_id
}
}
Isso me parece bastante estranho por vários motivos, como o fato de stored_id ser opcional dada a semântica do CoreDatas. Será que isso é uma prática ruim por algum motivo?
Você pode ter entidades do Core Data em conformidade com
Identifiable
, e de fato, se você criar um novo projeto do Core Data hoje (e acredito que desde o Xcode 14), aIdentifiable
conformidade já será adicionada quando a classe de entidade for criada:Este é o código que foi gerado simplesmente criando um novo aplicativo com armazenamento de dados principais no Xcode 16:
Se você quiser/precisar adicionar conformidade, não há necessidade de uma propriedade adicional. Você pode aproveitar a identidade interna de uma
NSManagedObject
subclasse simplesmente adicionando-a como o boilerplate faz.extension Item : Identifiable {}