AnyClass является т ypealias для AnyObject. Тип. AnyObject представляет только ссылочные типы в Swift, такие как классы. Где как Array в Swift - тип значения, который не может быть представлен AnyObject скорее вы должны использовать Любой. Вы можете использовать NSArray, который является типом класса в Objective C, который хорошо соединяется с Swift Array.
class ArrayValueTransformer : NSValueTransformer {
override func transformedValue(value: AnyObject?) -> AnyObject? {
guard let randomString = value as? String else { return nil }
return split(randomString.characters, isSeparator: {$0 == " "}).map{ String($0) }
}
override func reverseTransformedValue(value: AnyObject?) -> AnyObject? {
guard let randomArray = value as? [String] else { return nil }
return randomArray.reduce(" ", combine: { "\($0!) \($1)" })
}
override class func transformedValueClass() -> AnyClass {
return NSArray.self
}
}
let transformer = ArrayValueTransformer()
let transformedValue = transformer.transformedValue("J A C K")!
let originalValue = transformer.reverseTransformedValue(transformedValue)
Кстати, вы можете использовать AnyObject.self. transformdValue и reverseTransformedValue имеет тип возвращаемого объекта AnyObject ?, поэтому вам нужно было бы придать тип вашему типу любым способом.