Ich verstehe nicht, wann AnyObject und wann Any in Swift verwendet werden soll.
In meinem Fall habe ich ein Wörterbuch
[String: ???]
??? : Kann Int, Double, Float, String, Array, Dictionary sein
Kann mir jemand den Unterschied zwischen Any und AnyObject erklären und welches in meinem Fall zu verwenden ist.
Alak
String
,Array
undDictionary
sind nicht Klassen, für diese Verwendung Any.NSString
,NSArray
undNSDictionary
sind Klassen noch die ähnlich funktionalen Swift - Versionen werden nicht Klassen und dass die Trips viele Devs.Ob Sie verwenden
Any
oderAnyObject
von Ihrem Verwendungszweck abhängen:Wenn Ihr Wörterbuch nur innerhalb Swift - Code verwendet wird, dann sollten Sie verwenden ,
Any
weil Ihre Typen (Int
,Double
,Float
,String
,Array
, undDictionary
) sind nicht Objekte.Wenn Sie Ihr Wörterbuch an Objective-C-Routinen übergeben, die eine erwarten
NSDictionary
, sollten Sie verwendenAnyObject
.Wenn Sie
import Foundation
oderimport UIKit
oderimport Cocoa
ist es möglich , das Array als zu erklären[String: AnyObject]
, aber in diesem Fall Swift Ihr behandeltInt
,Double
,Float
Literale alsNSNumber
IhrString
s wieNSString
, IhreArray
s wieNSArray
und Ihre Wörterbücher wieNSDictionary
, von denen alle Objekte sind. Ein Wörterbuch, dasAnyObject
als Werttyp verwendet wird, kann in konvertiert werdenNSDictionary
, ein Wörterbuch jedochAny
nicht.quelle
Laut Apples Swift-Dokumentation
Weitere Details finden Sie hier: Blog
quelle
Überprüfen Sie diese SO-Antwort :
quelle