为什么 CGColor.copy() return 是可选值?
Why does CGColor.copy() return an optional value?
因此,由于函数 CGColor.copy()
return 是一个可选值,因此人们会假设可能有理由将其设为 return nil。但是,除了 CGColor 本身是一个可选值之外,我想不出任何失败的原因。因为我在我的程序中使用了这个,所以有人知道为什么在一个不可选的值上 return nil 吗?
我认为你解释的很正确。请记住,实际上没有 CGColor 这样的对象;它实际上没有 copy
这样的方法。这是全局 C 函数的手动调整渲染:
CGColorRef CGColorCreateCopy(CGColorRef color);
嗯,CGColorRef 总是可以是 nil
,所以 color
可以是 nil
,所以结果可以是 nil
。所以结果必须是可选的。 (它不能有时是可选的,有时又不是可选的。)
因此,由于函数 CGColor.copy()
return 是一个可选值,因此人们会假设可能有理由将其设为 return nil。但是,除了 CGColor 本身是一个可选值之外,我想不出任何失败的原因。因为我在我的程序中使用了这个,所以有人知道为什么在一个不可选的值上 return nil 吗?
我认为你解释的很正确。请记住,实际上没有 CGColor 这样的对象;它实际上没有 copy
这样的方法。这是全局 C 函数的手动调整渲染:
CGColorRef CGColorCreateCopy(CGColorRef color);
嗯,CGColorRef 总是可以是 nil
,所以 color
可以是 nil
,所以结果可以是 nil
。所以结果必须是可选的。 (它不能有时是可选的,有时又不是可选的。)