swift - 将字符串的 NSObject 转换为 [String]
问题描述
我一直试图将字符串的 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.
解决方案
如果 myObject 是一个集合(核心数据模型中的关系),那么尝试做
let arr:[String] = Array(myObject) as! [String]