' NSError'不能转换为' UInt8'

时间:2015-03-23 01:20:52

标签: ios swift compiler-errors

虽然我已经浏览了另一个"不能转换为UInt8"答案,我还没找到一个我理解的。

有谁能告诉我发生了什么事?

以下代码抛出错误 - ' NSError'不能转换为' UInt8'

if( error != nil) {...}

任何人都可以解释为什么检查错误是否为零将导致此错误"错误"哈哈。

我可以通过制作nil选项并将代码更改为

来消除错误
if( error != nil!) {...}

我这样做了吗?我应该做其他事吗?

1 个答案:

答案 0 :(得分:3)

也许该错误消息并不像它应该的那样有用,但编译器在这里抱怨是正确的。请注意,在错误中,您收到的是NSError类型的抱怨NSError,而不是NSError?NSError!

这意味着您的error变量属于非可选NSError类型,因此永远不会为nil,并且无需进行nil检查。我想你会发现,如果你将你的错误对象重新声明为可选的,或者是一个隐式解包的可选项,你的代码就可以正常运行。