使用NSCountedSet在Swift Playground中似乎存在一个错误。

此代码按预期工作

let numbers = [1,2,2,4,6,7,8,8,5,8,1]

let set = NSSet(array: numbers)

但是当我尝试以相同的方式创建NSCountedSet时
var bag = NSCountedSet(array: numbers)

我得到这个错误



我确实尝试过转换数字
let nums = numbers as [AnyObject]
var bag = NSCountedSet(array: nums)

然后我得到这个错误



我在这里想念什么吗?

我可以通过解决此问题
var bag = NSCountedSet()
for number in numbers {
    bag.addObject(number)
}

但这不是很优雅

最佳答案

更新:如@ carbo18所述,此问题已在Xcode 6.3 beta 4中修复。

旧答案:那肯定看起来像是个错误。 NSCountedSet具有初始化程序

convenience init(array: [AnyObject])
convenience init(set: NSSet)


let b1 = NSCountedSet(array: [])     // extra argument 'array' in call
let b2 = NSCountedSet(set: NSSet())  // extra argument 'set' in call

两者都无法编译。

苹果开发者论坛(https://devforums.apple.com/message/1081850#1081850)也对此进行了报道,
给出以下解决方法:
let numbers = [1,2,2,4,6,7,8,8,5,8,1]
let bag = NSCountedSet()
bag.addObjectsFromArray(numbers)

09-20 10:19