将 Realm 字符串列表转换为 Swift 中的字符串数组

问题描述 投票:0回答:4

我刚刚开始使用 RealmSwift,我正在尝试在 Realm 中存储字符串数组。它不起作用,所以现在我使用

List<String>()
作为替代方案。但是,如何将这些领域列表再次转换回
[String]
?如果我做不到,有其他选择吗?

谢谢

swift xcode realm
4个回答
14
投票

但是,如何将这些领域列表再次转换回 [String]

您可以简单地将

List
转换为
Array
,因为
List
Sequence Support
:

let list = List<String>()
let array = Array(list)

0
投票

请记住,通过转换为数组,您将失去 Realm 集合的“动态”质量(即您将收到一个静态数组,而保留原始列表将在源更改时提供自动更新)。但是您可以使用扩展来创建数组,例如:-

extension RealmCollection
{
  func toArray<T>() ->[T]
  {
    return self.compactMap{$0 as? T}
  }
}

然后使用:-

let stringList = object.strings.toArray()

其中

object
是领域对象,
strings
是你的领域。


0
投票

详情如下。如何在领域列表模型中分配数组。

jim.dogs.append(objectsIn: someDogs)

0
投票

如果您遇到任何其他问题,例如编译器告诉您需要将

operations:
添加到领域闭包中,请确保您正在转换
List<String>
,而不是
List<String>?
。至少进行适当的
if let
展开,这样它就不再是可选的,并且它会起作用。希望有帮助。

The error

© www.soinside.com 2019 - 2024. All rights reserved.