2015-03-20 9 views
9

Sembra esserci un bug in Swift Playground con l'uso di NSCountedSet.Swift NSCountedSet init con bug dell'array?

Questo codice funziona come previsto

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

let set = NSSet(array: numbers) 

ma quando provo a creare un NSCountedSet nello stesso modo

var bag = NSCountedSet(array: numbers) 

ottengo questo errore

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)

ho provato fusione numeri

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

allora ottengo questo errore

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)

mi manca qualcosa qui?

posso aggirare il problema in questo modo

var bag = NSCountedSet() 
for number in numbers { 
    bag.addObject(number) 
} 

ma non è molto elegante

+1

Questo è davvero strano. 'let bag = NSCountedSet (array: [])' e 'let bag = NSCountedSet (set: set)' anche non compilare. Invia una segnalazione di bug ad Apple! –

+0

Inviato un bug report. Grazie – carbo18

+0

Il codice sopra non fallisce più nei parchi giochi in Xcode 6.3 beta 4. – carbo18

risposta

8

Aggiornamento: Come @ carbo18 segnalato, questo è stato risolto in Xcode 6.3 beta 4.

Vecchia risposta: Sembra decisamente un bug. NSCountedSet ha inizializzatori

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

ma

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

entrambi non riescono a compilare.

Ciò è stato anche riportato in Apple Developer Forum (https://devforums.apple.com/message/1081850#1081850), dove viene data la seguente soluzione:

let numbers = [1,2,2,4,6,7,8,8,5,8,1] 
let bag = NSCountedSet() 
bag.addObjectsFromArray(numbers) 
+1

La domanda precedente era un bug con Xcode 6.2 ed è stata risolta in Xcode 6.3 Beta 4 – carbo18

+0

@ carbo18: Buono a sapersi, grazie per l'informazione! –

+0

strano, ancora un bug in 6.4 (6E35b) –

Problemi correlati