【问题标题】:Porting Int Realm List from Objective-c to Swift将 Int Realm List 从 Objective-c 移植到 Swift
【发布时间】:2021-02-03 16:08:56
【问题描述】:

如何将 Realm 数据模型从 Objective-c 移植到 Swift,如下属性?

Objective-c

@property RLMArray<NSNumber *><RLMInt> *dates;

Swift(我的解决方案,但它不起作用)

let dates = List<Int>()

错误

致命错误:“试试!”表达式意外引发错误:Error Domain=io.realm Code=10 “由于以下错误,需要迁移:- 已要求属性 'MyDataModel.dates'。”

【问题讨论】:

  • 你搜索过那个错误吗?
  • 致命错误:“试试!”表达式意外引发错误:Error Domain=io.realm Code=10 “由于以下错误,需要迁移:- 已要求属性 'MyDataModel.dates'。”
  • edit提供附加信息的问题,不要将其添加到 cmets。
  • 领域列表不能很好地处理原语,因此请避免使用 List。见this answer。当您说移植时,您是指迁移吗?如果不是什么意思。来自 Realm Docs:请注意,目前不支持查询包含原始值的列表,因此最好避免使用原始值。
  • 另外,如果这是迁移情况,那么底层数据是相同的——不需要迁移底层数据。迁移适用于将数据从一个属性移动到另一个属性,或者想要将属性合并为一个,或者更改类名或类的多个属性等时。

标签: ios objective-c swift realm


【解决方案1】:

我发现我只需要在 Objective-c 版本的 RLMObject 子类上添加 requiredProperties 方法,它在 Swift 版本中就可以正常工作。原因是 List 类型必须是非可选的。

+ (NSArray<NSString *> *)requiredProperties {
    return @[@"dates"];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多