ios - 如何使用 Realm 存储字符串枚举

标签 ios swift realm

我无法在 Realm 中将数据保存为枚举。当我跟踪变量的状态并保存时,旧值仍然存在,而不是新值。我做错了什么?

我用了setter和getter,还是没有解决问题。

import RealmSwift

class Transaction: Object {

var accounting: Accounting = .income
@objc dynamic var amount = 0
@objc dynamic var date = ""
@objc dynamic var note = ""

private var privateCategory: String = Category.noCategories.rawValue
var category: Category {
    get { return Category(rawValue: privateCategory)! }
    set { privateCategory = newValue.rawValue }
  } 
}

enum Category: String {
   case noCategories = "No сategories"
   case food = "Food"
   case cafesAndRestaurants = "Cafes And Restaurants"
   case manufacturedGoods = "Manufactured Goods"
   case forceMajeure = "Force Majeure"
   case entertainment = "Entertainment"
}

当我尝试保存属性时,Category 默认保存(“无类别”)

let transactionOne = Transaction()
    transactionOne.accounting = .consuption
    transactionOne.amount = 250
    transactionOne.category = .food

transaction privateCategory String "No categories"

最佳答案

Realm guide 中的所有示例可以看出,您要保留的字符串属性用 @objc dynamic 标记。所以你也应该将 privateCategory 标记为 @objc dynamic:

@objc dynamic var privateCategory: String = Category.noCategories.rawValue

关于ios - 如何使用 Realm 存储字符串枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56026538/

相关文章:

swift - 在 Swift 中转义闭包

json - 在 Docker Windows 上的 Keycloak 中添加 Realm 时出现意外的服务器错误

c# - Unity3D通过Xcode访问变量集

iOS 9.2.1 Xcode 7.2.1 UIPageControl 点绘制在彼此之上

ios - 使用来自 NSArray 的 UIButtons 自动填充 ScrollView

ios - Swift:在 UITable-View 中加载图像

ios - 使用 Cocoa API 时,所有代码都在运行循环中运行吗?

json - alamofireobjectmapper requestObject 无法做出正确的请求和映射

swift - 如何在 Swift Realm 中为记录指定特定 ID

Realm :组合 "or"和 "and"