Ya sea que use Anyo AnyObjectdepende de su uso previsto:
Si va a utilizar su diccionario solamente en el código Swift, entonces debería usar Anydebido a sus tipos ( Int, Double, Float, String, Array, y Dictionary) no son objetos.
Si va a pasar su diccionario a las rutinas de Objective-C que esperan un NSDictionary, entonces debería usar AnyObject.
Cuando import Foundationo import UIKito import Cocoa, es posible declarar la matriz como [String: AnyObject], pero en este caso Swift ha tratado su Int, Double, Floatliterales como NSNumber, sus Strings como NSString, sus Arrays como NSArray, y de los diccionarios como NSDictionary, todos los cuales son objetos. Un diccionario que usa AnyObjectcomo tipo de valor es convertible a NSDictionary, pero uno que usa Anyno lo es.
String,ArrayyDictionaryno son clases, para estas se usa Any.