2016-07-19 9 views
0

Diese Verwendung ist der Code, den ich in Spielplatz versuchen:Compiler abstürzt, wenn variadische Parameter in Schließung

let aVar: (Int...) ->() = { 
    $0 
} 

Der Compiler stürzt The LLDB RPC server has crashed sagen und bittet mich um einen Fehler zu Apple zu melden. Ich habe sogar versuchte dies:

let aVar: (Int...) ->() = { ints in 
    ints //as soon as I write this, it crashes with the above message. 
} 

Ich wollte nur wissen, ob das, was ich geschrieben habe gültige Code ist, da es keine Art, wie ich dies bestätigen, und wenn variadische Parameter könnten auch zu Schließungen als Parameter angegeben werden. Ich benutze Xcode 8 Beta 2.

+0

func aVar (Zahlen: Int ...) ->() { für num in Zahlen { print ("\ (num)") } } aVar (5,4,6,7) –

+0

Das ist ein 'Func' @JoyEtamity. Ich habe mich auf "Schließungen" bezogen. @vacawama, zur Zeit keine Problemumgehung für 'shorthand' Argumente? – Dershowitz123

Antwort

0

Von der Swift closure docs:

Variadische Parameter verwendet werden können, wenn Sie den variadische Parameter nennen

Also in der Theorie sollte diese Arbeit:

let aVar: (x: Int...) ->() = { 
    print($0) 
} 

Aber der Compiler noch abstürzt , auch mit Xcode 8, wahrscheinlich ein Bug. Ich kenne den Workaround noch nicht.

EDIT: Diese Frage ist ein Duplikat von How to use a variadic closure in swift?.

Verwandte Themen