大佬教程收集整理的这篇文章主要介绍了ios – 在易错初始化程序swift 1.2中分配let变量,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是我该怎么做才能解决这个问题?
该规则正是您试图违反的规则. aspectRatio是一个let属性,你已经在它的声明中给它一个值:
@H_616_2@public let aspectRatio: Double = 0因此,在我们到达初始化程序之前,aspectRatio的初始值为0.这是它可以拥有的唯一值.新规则意味着您永远不能再分配给aspectRatio,即使在初始化程序中也是如此.
@H_616_2@public let aspectRatio: Double现在,在初始化程序中,将其指定为0或指定它!.doubleValue / h!.doubleValue.换句话说,一次处理初始化程序中的所有可能性.无论如何,这将是唯一一次为aspectRatio分配值的时间.
如果你考虑一下,你会发现这是一种更明智和一致的方法;以前,你对let的含义有点搪塞,新规则已经阻止了你这样做.
在重写代码时,如果您想要挽救并返回nil,则无法初始化所有属性.我知道这似乎违反直觉,但你做不到.即使您打算纾困,也必须初始化所有属性.我非常清楚地讨论这个问题in my book:
编辑:请注意,从Swift 2.2开始,此要求将被取消.在初始化属性之前返回nil是合法的.这将使类初始化器与struct初始化器相提并论,这已经是合法的.
以上是大佬教程为你收集整理的ios – 在易错初始化程序swift 1.2中分配let变量全部内容,希望文章能够帮你解决ios – 在易错初始化程序swift 1.2中分配let变量所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。