有什么不同(如果是的话,根本的原则是什么?)下延variable as! NSString与下延variable as NSString!之间的关系
发布于 2015-05-19 09:23:38
variable as! NSString强制将变量的向下转换为NSString,如果variable不是NSString,则会引发运行时错误。
variable as NSString!由于SWIFT1.2操作符as只能用于上传,所以上述代码将导致编译时错误,除非variable已知是NSString的子类。
发布于 2015-05-19 09:03:55
你所指的是被更好地称为下播。您可以阅读苹果关于这个问题的文档,这里。
某个类类型的常量或变量实际上可能指的是幕后子类的实例。在您认为是这样的情况下,可以尝试使用类型类型cast操作符(如?或作为!)。 由于下传可能失败,类型强制转换操作符以两种不同的形式出现。条件窗体as?返回要向下转换的类型的可选值。强制形式,如!,尝试下行和强制-打开结果作为一个单一的复合行动。 使用类型强制转换操作符的条件形式(as?)当你不确定沮丧是否会成功的时候。这种形式的运算符将始终返回一个可选的值,如果不可能下行,则该值将为零。这使您能够检查是否有成功的下播。 使用强制转换运算符的强制形式(as!)只有当你确信沮丧的人永远会成功的时候。如果试图向下转换为不正确的类类型,则此形式的运算符将触发运行时错误。
https://stackoverflow.com/questions/30321075
复制相似问题