AnyClass是噸yopealias for AnyObject .Type。 AnyObject只代表Swift中的引用類型,例如類。 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?的返回類型,因此您需要將它類型化爲任何方式。