Que vous utilisiez Any
ou AnyObject
dépend de votre utilisation prévue:
Si votre dictionnaire sera utilisé que dans le code Swift, vous devez utiliser Any
parce que vos types ( Int
, Double
, Float
, String
, Array
et Dictionary
) ne sont pas des objets.
Si vous passez votre dictionnaire aux routines Objective-C qui attendent un NSDictionary
, alors vous devriez utiliser AnyObject
.
Lorsque vous import Foundation
ou import UIKit
ou import Cocoa
, il est possible de déclarer votre tableau comme [String: AnyObject]
, mais dans ce cas Swift traite votre Int
, Double
, Float
littéraux comme NSNumber
, vos String
s que NSString
, vos Array
s comme NSArray
, et vos dictionnaires que NSDictionary
, tous sont des objets. Un dictionnaire utilisant AnyObject
comme type de valeur est convertible en NSDictionary
, mais un dictionnaire utilisant Any
ne l'est pas.
String
,Array
etDictionary
ne sont pas des classes, pour ceux-ci utilisent Any.