Swift NSCountedSet 初始化有数组错误?
Swift NSCountedSet init with array bug?
Swift Playground 中似乎存在使用 NSCountedSet 的错误。
此代码按预期工作
let numbers = [1,2,2,4,6,7,8,8,5,8,1]
let set = NSSet(array: numbers)
但是当我尝试以同样的方式创建 NSCountedSet 时
var bag = NSCountedSet(array: numbers)
我收到这个错误
Playground execution failed:
/var/folders/bl/1tnlvfzd4mqb9gkpx0h8rxy00000gp/T/lldb/6514/playground599.swift:56:31:
error: 'Int' is not identical to 'AnyObject' var bag =
NSCountedSet(array: numbers)
我试过投数字
let nums = numbers as [AnyObject]
var bag = NSCountedSet(array: nums)
然后我得到这个错误
Playground execution failed:
/var/folders/bl/1tnlvfzd4mqb9gkpx0h8rxy00000gp/T/lldb/6514/playground732.swift:58:23:
error: extra argument 'array' in call 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
都编译失败
Apple 开发者论坛 (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)
Swift Playground 中似乎存在使用 NSCountedSet 的错误。
此代码按预期工作
let numbers = [1,2,2,4,6,7,8,8,5,8,1]
let set = NSSet(array: numbers)
但是当我尝试以同样的方式创建 NSCountedSet 时
var bag = NSCountedSet(array: numbers)
我收到这个错误
Playground execution failed: /var/folders/bl/1tnlvfzd4mqb9gkpx0h8rxy00000gp/T/lldb/6514/playground599.swift:56:31: error: 'Int' is not identical to 'AnyObject' var bag = NSCountedSet(array: numbers)
我试过投数字
let nums = numbers as [AnyObject]
var bag = NSCountedSet(array: nums)
然后我得到这个错误
Playground execution failed: /var/folders/bl/1tnlvfzd4mqb9gkpx0h8rxy00000gp/T/lldb/6514/playground732.swift:58:23: error: extra argument 'array' in call 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
都编译失败
Apple 开发者论坛 (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)