首页 > 解决方案 > 初始化 CGSize 的一个奇怪问题或错误

问题描述

我正在以 2 种不同的方式定义然后初始化一个可选的 CGSize 类型值,我希望在这两种情况下我都应该有一个可选的大小,但奇怪的是,即使在输入宽度和高度之后,在方式 1 中,该值仍然为零!我在这里错过了什么吗?

var value1: CGSize? = nil
value1?.width = 100.0
value1?.height = 100.0
print(value1)                                   // print: nil


var value2: CGSize? = nil
value2 = CGSize(width: 100.0, height: 100.0)
print(value2)                                  // print: Optional((100.0, 100.0))

标签: swift

解决方案


它正在做你告诉它做的事情。
您从不初始化值 1,因此您的可选链接失败。

如果您想设置宽度和高度并获得 CGSize,则需要对其进行初始化,然后设置其值:

var value3: CGSize? = nil
value3 = CGSize()
value3?.width = 100.0
value3?.height = 100.0
print(value3)       //Optional((100.0, 100.0))

推荐阅读