Незалежно від того, 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, ваші Strings як NSString, ваші Arrays як NSArrayі ваші словники , як NSDictionary, всі з яких є об'єкти. Словник, що використовується AnyObjectяк тип значення, можна конвертувати NSDictionary, але той, що використовує Any, ні.
String,ArrayіDictionaryне є класами, для них використання будь-якого.