gpt4 book ai didi

arrays - 如何将原生 Swift 集转换为 NSArrays?

转载 作者:搜寻专家 更新时间:2023-11-01 06:40:57 24 4
gpt4 key购买 nike

我在我的应用程序中构建了一个表单 ( https://github.com/xmartlabs/Eureka ),其中一个输入将获得一个 Optional Set 类型。但是,我需要将这个集合作为数组推送给每个用户进行解析。但是解析中的数组字段只接受 NSArray 作为有效数据类型。如何将其转换为 NSArray?我已经提到这篇文章 ( Convert native swift Set into array )但它似乎不适用于我的情况。这是我的代码:

let user = PFUser()

print(form.rowByTag("Subjects")?.baseValue)

if let subjects = form.rowByTag("Subjects")?.baseValue
{
let arr = Array(arrayLiteral: subjects)
user["Subjects"] = arr as! AnyObject
}
else
{
print("There is no subjects chosen")
}

Subjects 字段是 Parse 中的一个数组字段。打印语句的结果和错误: enter image description here

enter image description here

最佳答案

问题是数组中的对象是未包装的可选对象。

但是您不能使用 Array(arrayLiteral: ),因为它只会创建一个包含集合本身的数组,而不是集合中元素的数组。

我们将使用 flatMap 来安全地解包内容。

if let subjects = form.rowByTag("Subjects")?.baseValue as? Set<String> {
let arr = subjects.flatMap { $0 }
user["Subjects"] = arr as! AnyObject

}

当然,如果可能,最好解决问题的根源,并在代码流的早期安全地解包可选值,这样您就可以使用 Array(subjects) 像往常一样。

关于arrays - 如何将原生 Swift 集转换为 NSArrays?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523073/

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