2016-10-21 2 views
-3

Ich schrieb Code, als ich auf etwas stieß, das dem widersprach, was ich gelernt hatte, als ich Swift zum ersten Mal lernte. Jemand hatte mir gesagt, dass Swift automatisch zwischen Strukturen und AnyObject überbrücken kann. Als ich jedoch einen ähnlichen Code schrieb, bekam ich einen Fehler. Der Fehler hatte etwas damit zu tun, dass "Hello" nicht dem Typ AnyObject entsprach. Jemand bitte helfen.Structs entsprechen AnyObject

var someArray = [AnyObject]() someArray.append("Hello")

+5

"wenn ich Code ähnlich diesem geschrieben ..." - poste den Code, den du tatsächlich geschrieben hast, nicht irgendeinen anderen Code, der lediglich "ähnlich" ist. "Ich habe einen Fehler bekommen. Der Fehler hatte etwas damit zu tun ..." - poste den tatsächlichen Fehler, den du bekommen hast, nicht eine vage Prosabeschreibung. –

+1

Dies war (in der Praxis) für Swift <3,0. Jetzt können Sie Any verwenden, um ein ähnliches Ergebnis zu erzielen. – PeejWeej

Antwort

0

Bis Swift 2.3, wenn Stiftung importiert wird, können gemeinsame Strukturtypen implizit in ihre Stiftung Pendants überbrückt werden, wenn sie in sein AnyObject dazu gezwungen sind.

Um Swift von der Foundation zu entfernen, muss dieses implizite Verhalten nun in Swift 3 explizit sein, wobei der Operator für die Zwangserkennung (as) verwendet wird.