gpt4 book ai didi

swift - 带有枚举列表的 RealmSwift

转载 作者:搜寻专家 更新时间:2023-11-01 07:04:10 31 4
gpt4 key购买 nike

我有一个带有一些字符串大小写的枚举

public enum UserPermission: String, Decodable {
case userManagement = "USER_MANAGEMENT"
case contactManagement = "CONTACT_MANAGEMENT"
case userV2 = "USER_V2.1"
}

@objcMembers final public class MyModel: Object, Decodable {

public var permissionCollection = List<UserPermission>()

public dynamic var rawRole: String? = nil

private enum CodingKeys : String, CodingKey {
case permissionCollection = "permission_collection"
}

convenience public init(permissionCollection: String) {
self.init()
self.permissionCollection = permissionCollection
}

public required convenience init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
let rawRermissionCollection = try container.decode(String.self, forKey: .permissionCollection)
self.init(permissionCollection: permissionCollection)
}

}

我有一个错误Type 'UserPermission' does not conform to protocol 'RealmCollectionValue'

在数据模型中,我需要使用 Realm 将枚举存储为列表。有人知道我该怎么做吗?

最佳答案

Realm 的 List 只能存储 Object 子类或 Realm 支持的属性类型之一(例如 Int字符串等)。 Realm 不支持存储 enum 值,因此您也不能将它们存储在 List 中。

一种替代方法是存储 enumrawValue,因为它有一个 String 类型的 rawValue , 可以存储在 Realm 中。

关于swift - 带有枚举列表的 RealmSwift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49077652/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com