Che tu usi Any
o AnyObject
dipenda dall'uso previsto:
Se il dizionario sarà usato solo nel codice Swift, quindi si dovrebbe utilizzare Any
perché i tipi ( Int
, Double
, Float
, String
, Array
, e Dictionary
) non sono oggetti.
Se passerai il tuo dizionario a routine Objective-C che prevedono un NSDictionary
, allora dovresti usare AnyObject
.
Quando si import Foundation
o import UIKit
o import Cocoa
, è possibile dichiarare il vostro matrice come [String: AnyObject]
, ma in questo caso Swift è trattare la vostra Int
, Double
, Float
letterali come NSNumber
, i vostri String
s come NSString
, i vostri Array
s come NSArray
, e le vostre dizionari come NSDictionary
, che sono tutti oggetti. Un dizionario che utilizza AnyObject
come tipo di valore è convertibile in NSDictionary
, ma Any
non lo è.
String
,Array
eDictionary
non sono classi, per questi usano Any.