gpt4 book ai didi

swift - 将字符串的 NSObject 转换为 [String]

转载 作者:行者123 更新时间:2023-11-30 10:51:32 25 4
gpt4 key购买 nike

我一直在尝试将 NSObject 字符串转换为 [String]。我正在使用 coreData,我的可转换对象是 NSObject。烦人的是它是不可枚举的。所以我惯用的伎俩不起作用了。有人可以帮我吗?

谢谢

{(
dried,
stewed
)}

这应该变成这样:

[dried, stewed].

通常的向下转型不起作用:

  myObject as! [String] :(

我还注意到,有时错误消息说它无法向下转换 NSObject,有时它说:

Could not cast value of type '__NSSetI' (0x10f101138) to 'NSArray' (0x10f101598).

编辑:我找到了解决方法:

let mySet = myObject as! NSSet
let myArr : [String] = mySet.map { $0 as! String } . // yay!

我首先将其转换为一个集合以使其可枚举,然后将其转换为 [String]

有趣的是这不起作用:

let mySet = myObject as! NSSet 
let myArr = mySet as! [String] // nope.

最佳答案

Set 和 Array 不是同一类型,不能直接将它们相互转换。

理想情况下,您应该将 Objective-C 类型 NSSet 转换为 Swift Set:

let mySet = myObject as! Set<String>

如果迭代是您唯一的目的,那么这就是您所需要的。

如果您确实需要一个数组,请从集合中创建一个新数组:

let myArray = Array(mySet)

关于swift - 将字符串的 NSObject 转换为 [String],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54417571/

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