Swift NSCountedSet与数组错误?

Swift Playground中似乎有一个使用NSCountedSet的bug。

此代码按预期工作

let numbers = [1,2,2,4,6,7,8,8,5,8,1] let set = NSSet(array: numbers) 

但是当我尝试以相同的方式创build一个NSCountedSet

 var bag = NSCountedSet(array: numbers) 

我得到这个错误

Playground执行失败:/var/folders/bl/1tnlvfzd4mqb9gkpx0h8rxy00000gp/T/lldb/6514/playground599.swift:56:31:错误:'Int'与'AnyObject'不一致var bag = NSCountedSet(array:numbers)

我确实尝试了数字

 let nums = numbers as [AnyObject] var bag = NSCountedSet(array: nums) 

那么我得到这个错误

游戏场执行失败:/var/folders/bl/1tnlvfzd4mqb9gkpx0h8rxy00000gp/T/lldb/6514/playground732.swift:58:23:错误:在调用中的额外参数'数组'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)