我想将一个对象和一个Type传递给一个方法,并找出该对象是传入的Type。我认为它适用于AnyObject。但是Any也可以是Strcuts,Strings,Doubles ..
我使用AnyObject的解决方案如下所示:
class AClass {
}
class BClass {
}
class TypeCheck {
var type : AnyObject.Type;
init( type: AnyObject.Type ) {
self.type = type;
}
func isOfType( object: AnyObject ) -> Bool {
return self.type === object.dynamicType.self ? true : false;
}
}
var typeCheck = TypeCheck( type: AClass.self );
var a = AClass();
var b = BClass();
println( "Object \(a) is of checked Class: \(typeCheck.isOfType(a))" );//true
println( "Object \(b) is of checked Class: \(typeCheck.isOfType(b))" );//false
就像在这个使用TypeCheck.type的例子中一样,我需要存储我想要检查的类型。这有什么解决方案吗?我发现的只是具有特定类型的解决方案或仅适用于对象。
答案 0 :(得分:0)
您可以使用泛型更简单地执行此操作:
import UIKit
class AClass {
}
class BClass {
}
class TypeCheck<T> {
func isOfType<U>(arg: U) -> Bool {
return arg is T
}
}
var typeCheck = TypeCheck<AClass>();
var a = AClass();
var b = BClass();
println( "Object \(a) is of checked Class: \(typeCheck.isOfType(a))" );//true
println( "Object \(b) is of checked Class: \(typeCheck.isOfType(b))" );//false