Niezależnie od tego, czy używasz, Any
czy AnyObject
zależy od zamierzonego zastosowania:
Jeśli słownik będą wykorzystywane wyłącznie w ramach kodu SWIFT, należy użyć Any
ponieważ wasze typy ( Int
, Double
, Float
, String
, Array
, i Dictionary
) nie są obiektami.
Jeśli będziesz przekazywać swój słownik do procedur Objective-C, które oczekują an NSDictionary
, powinieneś użyć AnyObject
.
Kiedy import Foundation
albo import UIKit
czy import Cocoa
możliwe jest, aby zadeklarować swoją tablicę jako [String: AnyObject]
, ale w tym przypadku Swift traktuje swoje Int
, Double
, Float
literały jak NSNumber
twoje String
s jak NSString
, twoi Array
s jak NSArray
i twoi jak słowniki NSDictionary
, z których wszystkie są obiektami. Słownik używający AnyObject
jako typu wartości jest konwertowany na NSDictionary
, ale używany Any
nie.
String
,Array
iDictionary
nie są zajęcia dla tych użyć dowolnego.