我们都知道 swfit 是一个队类型要求很严格的语言,不同类型的变量不可以运算,使用的时候还要转换为指定的类型。我们也知道 !这个东西经常会在类型转换的时候用到,然后 app 可能会悲催额崩掉了。其实,我们可以从变量或者属性的声明入手。
我经常看到的一些从 oc 转为 swift 开发的工程师们,在定义变量的时候还是使用的 oc 的方式。比如很常见的 array、dictionary,他们就会这样let arr = NSArray(),基本上所有属性都是这种方式的定义,但问题是,等到我们取出里面的元素使用的时候就要开始类型转换了,崩溃的脚步也就近了。
其实,swift 有自己的定义方式:let dic = [NSString:AnyObject](),像这种,在定义的时候直接给内部元素指定类型,到时候取出来就不用转换了。当然,可以指定明确的类型如 Int,String 等,不明确的如 Any,AnyObject;字典是[NSString:AnyObject],数组包字典是:[[NSString:AnyObject]]。绝对好用。