'NSError' 类型的值永远不能为 nil,不允许比较

Value of type 'NSError' can never be nil, comparison isn't allowed

我正在通过块 NSError 并收到此错误:

Value of type 'NSError' can never be nil, comparison isn't allowed

这是我从我的组件请求的代码,如果 smth:

应该 return 错误
- (void)findPeripheralForDevice:(Device *)device completion:(void (^)(NSError *error, BOOL needsConfigure))completion;

这是我的组件界面:

func findDeviceWithSerialNumber(serial: String, completion:(error: NSError, needsConfigure: Bool) -> Void)

我的代码是这样的:

 wirlessService.findDeviceWithSerialNumber(serial) { (error, needsConfigure) in

      if error != nil { // here the error described above occurred

      } else {

      }
    }

那是因为你在完成块中的错误参数不是可选类型。在 swift 中,如果您想检查 nil 值,请将您的参数或变量标记为 Optional.

以上试试这个。

func findDeviceWithSerialNumber(serial: String, completion:(error: NSError?, needsConfigure: Bool) -> Void)

通过添加 ?要么 !对于 属性 或参数,它将成为可选的。你可以检查空值。