【发布时间】:2017-03-25 06:56:37
【问题描述】:
因此,由于函数CGColor.copy() 返回一个可选值,人们会假设它可能有理由返回 nil。但是,除了 CGColor 本身是可选值之外,我想不出任何失败的原因。由于我在我的程序中使用它,有没有人知道它在一个非可选值上返回 nil 的原因?
【问题讨论】:
因此,由于函数CGColor.copy() 返回一个可选值,人们会假设它可能有理由返回 nil。但是,除了 CGColor 本身是可选值之外,我想不出任何失败的原因。由于我在我的程序中使用它,有没有人知道它在一个非可选值上返回 nil 的原因?
【问题讨论】:
我认为您的解释正确。记住,真的没有像 CGColor 这样的对象。它实际上没有像copy 这样的方法。这是全局 C 函数的手动调整渲染:
CGColorRef CGColorCreateCopy(CGColorRef color);
嗯,CGColorRef 总是可以是nil,所以color 可以是nil,所以结果可以是nil。所以结果必须是可选的。 (它有时不能是 Optional,有时又不是 Optional。)
【讨论】: