小编Kin*_*ech的帖子

Swift 和 CoreData 使用自定义类作为可转换对象

我正在尝试使用带有 swift 和 CoreData 的自定义类作为可转换对象。我一直在浪费时间试图弄清楚但无法解决。我不断收到两个错误:无法将属性标记为@NSManaged,因为它的类型无法在 Objective-C 中表示,并且属性无法声明为公共,因为它的类型使用内部类型。
非常感谢您的帮助。谢谢。

我有一个名为 User 的 CoreData 对象。我还有一个名为 Site 的对象。
我不希望 Site 对象成为 CoreData 对象,因为大多数时候我创建 Site 对象时都不希望将其添加到 CoreData 上下文中。

下面您将看到“Site”类型的“primarySite”和“sites”,它是“Site”类型的数组。这两行给出了我上面列出的相同的两个错误。

数据模型 数据模型

用户+核心数据类

import Foundation
import CoreData

public class User: NSManagedObject {
}
Run Code Online (Sandbox Code Playgroud)

用户+核心数据属性

import Foundation
import CoreData

extension User {
    @nonobjc public class func fetchRequest() -> NSFetchRequest<User> {
        return NSFetchRequest<User>(entityName: "User");
    }

    @NSManaged public var firstName: String?
    @NSManaged public var lastName: String?
    @NSManaged public var role: String?
    @NSManaged public var primarySite: Site
    @NSManaged public var …
Run Code Online (Sandbox Code Playgroud)

core-data nsmanagedobject ios transformable swift

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

core-data ×1

ios ×1

nsmanagedobject ×1

swift ×1

transformable ×1