最近写的项目是用的swift4.0来写的,但是坑不是一般的多,但是相较于oc来说有好处也有不好之处,因为oc有runtime机制,下面我就说说swift的一个关于nil的坑,话不多说,上源代码
//我在一个自定义的uiview里面创建一个初始化方法为
init(iconImage:String,message:String) {
super.init(frame:CGRect.zero)
self.frame = CGRect(x: 0, y: 0, width: windowW, height: windowH)
}
//在vc中初始化这个view
let alertView:CCarAlertView = CCarAlertView.init(iconImage:nil, message: "您还未登录,请先登录/注册")
然后编译的时候就出现下面这个错误
Nil is not compatible with expected argument type 'String'
解决办法
//我在一个自定义的uiview里面创建一个初始化方法为
init(iconImage:String?,message:String) {
super.init(frame:CGRect.zero)
self.frame = CGRect(x: 0, y: 0, width: windowW, height: windowH)
}
//在vc中初始化这个view
let alertView:CCarAlertView = CCarAlertView.init(iconImage:nil, message: "您还未登录,请先登录/注册")
然后判断iconImage是否为空的时候需要这样做
if (iconImage?.isEmpty) != nil{
print("iconImage不为空")
}else{
print("iconImage为空")
}
这个?和!我个人认为很烦人