在该代码中没有区别,在两种情况下它的求和结果都是
UITableViewCell?
真正的区别是:
在第一种情况下,向下转换
UITableViewCell?
预期将始终成功(即使它为nil),因此,如果dequeueReusableCellWithIdentifier
返回的不是其实例UITableViewCell
(或从其继承的类的实例),则它将在运行时失败。该表达式返回一个可选UITableViewCell?
在第二种情况下,强制类型转换是可选的:如果返回的对象
dequeueReusableCellWithIdentifier
既不UITableViewCell
是子类的实例也不是子类的实例,则向下转换的结果为nil(因此没有运行时错误)。
当然
dequeueReusableCellWithIdentifier总是返回a
UITableViewCell,这就是为什么代码没有区别的原因。但是在其他情况下,可能存在差异,因此您必须注意避免运行时错误
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)