2015-03-20 3 views
9

На Swift Playground появляется ошибка с использованием NSCountedSet.Swift NSCountedSet init с ошибкой массива?

Этот код работает как задумано

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) 
} 

Но это не очень элегантный

+1

Это действительно странно. 'let bag = NSCountedSet (array: [])' и 'let bag = NSCountedSet (set: set)' также не компилируются. Отправьте отчет об ошибке в Apple! –

+0

Отправлен отчет об ошибке. Спасибо – carbo18

+0

Вышеупомянутый код больше не терпит неудачу на игровых площадках в Xcode 6.3 beta 4. – carbo18

ответ

8

Update: Как @ carbo18 сообщалось, это было зафиксировано в Xcode 6.3 бета 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 Developer Forum (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) 
+1

Этот вопрос был ошибкой с Xcode 6.2 и исправлен в Xcode 6.3 Beta 4 – carbo18

+0

@ carbo18: Приятно знать, спасибо за информацию! –

+0

странно, все еще ошибка в 6.4 (6E35b) –