当前位置:  开发笔记 > IOS > 正文

Swift:NSArray要设置?

如何解决《Swift:NSArray要设置?》经验,为你挑选了1个好方法。

我正在尝试将其转换NSArray为Swift Set.

没有太多运气.

这样做的正确方法是什么?

例如,如果我有一个NSArray数字:

@[1,2,3,4,5,6,7,8]

如何Set从中创建Swift NSArray



1> Martin R..:

如果你肯定知道的是,NSArray只包含对象数,那么你可以将其转换为一个斯威夫特阵列Int(或Double或者 NSNumber,根据您的需要),并创建一套:

let nsArray = NSArray(array: [1,2,3,4,5,6,7,8])
let set = Set(nsArray as! [Int])

如果无法保证,请使用可选的强制转换:

if let set = (nsArray as? [Int]).map(Set.init) {
    print(set)
} else {
    // not an array of numbers
}

另一种变体(由@ JAL的评论推动):

let set = Set(nsArray.flatMap { $0 as? Int })
// Swift 4.1 and later:
let set = Set(nsArray.compactMap { $0 as? Int })

这给出了一组NSArray可转换为的所有元素Int,并默默地忽略所有其他元素.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有