You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift使用Realm存储数据时List属性可选性报错问题咨询

解决Realm中List属性的可选类型报错问题

问题原因分析

  1. 第一个报错“Object property 'remarkTypes' must be marked as optional”:通常是因为你尝试给非可选的List属性赋值nil,Realm误以为你需要将该属性设为可选,但实际上List本身就支持空状态,不需要额外标记可选。
  2. 第二个报错“Generic struct 'Persisted' requires that 'List' conform to '_PersistableInsideOptional'”:Realm的@Persisted属性不支持将List包装在可选类型(?)中,List类型从设计上就不需要被声明为可选。

修正方案

保持remarkTypes为非可选的List类型,Realm会自动为其初始化空列表,无需手动处理。修正后的代码如下:

public class ReportRealm: Object {
    @Persisted var remarkTypes: List<RemarkTypeRealm>
}

public class RemarkTypeRealm: Object {
    @Persisted var code: String?
    @Persisted var descriptionR: String?
}

使用注意事项

  • 添加元素:直接调用remarkTypes.append(yourRemarkType)即可,无需手动初始化List。
  • 清空列表:使用remarkTypes.removeAll()实现空状态,不要给remarkTypes赋值nil。

内容的提问来源于stack exchange,提问作者vijay singh yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:35:18