【问题标题】:'NSError' is not convertible to 'UInt8''NSError' 不能转换为 'UInt8'
【发布时间】:2015-03-23 01:20:51
【问题描述】:

虽然我已经查看了其他“不可转换为 UInt8”的答案,但我还没有找到我理解的答案。

谁能告诉我这是怎么回事?

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

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

谁能解释为什么检查错误是否为零会抛出这个“错误”哈哈。

我可以通过设置 nil 选项并将代码更改为来消除错误

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

我这样做对吗?我应该做点别的吗?

【问题讨论】:

  • 提交一个错误,即 swift 解释器会给出蹩脚的无用错误……如果我不因蹩脚、误导性和无用的错误而气馁,我会这样做。跨度>

标签: ios swift compiler-errors


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多