Незалежно від того, Any
чи використовуєте ви, чи AnyObject
залежить від призначення:
Якщо ваш словник буде використовуватися тільки в межах Swift коди, то ви повинні використовувати , Any
тому що ваші тип ( Int
, Double
, Float
, String
, Array
, і Dictionary
) не є об'єктами.
Якщо ви будете передавати свій словник підпрограми Objective-C, які очікують на NSDictionary
, тоді вам слід використовувати AnyObject
.
Коли ви import Foundation
або import UIKit
чи import Cocoa
, можна оголосити масив як [String: AnyObject]
, але в цьому випадку Swift обробляє ваш Int
, Double
, Float
літерали , як NSNumber
, ваші String
s як NSString
, ваші Array
s як NSArray
і ваші словники , як NSDictionary
, всі з яких є об'єкти. Словник, що використовується AnyObject
як тип значення, можна конвертувати NSDictionary
, але той, що використовує Any
, ні.
String
,Array
іDictionary
не є класами, для них використання будь-якого.