ios - 函数产生预期类型 '(() -> ())?' ;你的意思是用 '()' 来调用它吗?

标签 ios xcode swift

Function produces expected type '(() -> ())?'; did you mean to call it with '()'?

我收到上述错误。 Xcode 的自动修复没有帮助。

错误在 self.performOnCommunicationQueue() 上:

func getAuthParams(authClosure:((error:NSError?) -> ())?) {
    logDebug("Starting sync session with Max device")

    if let statusError = self.assertReady() {
        logError("Start sync session failed with error: \(statusError)")

        if (authClosure != nil) {
            authClosure!(error: statusError)
        }
    } else {
        self.performOnCommunicationQueue() {
            let error:NSError?

            // Set random starting byte
            let oAbsTime:[UInt64] = [mach_absolute_time()]
            let payload:NSData = NSData(bytes: oAbsTime, length: 8)
            let absTime:UInt8 = UnsafePointer<UInt8>(payload.bytes).memory
            self.randomCryptoByte = (0x01 | ( absTime & 0xfe))
    }
}

func sendAuthChallenge(authChal:String, completion:((error:NSError?) -> ())?) {
}

func performOnCommunicationQueue(closure:(()->())?){
    if (closure != nil)
    {
        self.communicationQueue?.addOperationWithBlock(closure!)
    }
}

最佳答案

我想这就是你想要的:

self.performOnCommunicationQueue({ () -> () in
    let error:NSError?
    // Set random starting byte
    let oAbsTime:[UInt64] = [mach_absolute_time()]
    let payload:NSData = NSData(bytes: oAbsTime, length: 8)
    let absTime:UInt8 = UnsafePointer<UInt8>(payload.bytes).memory
    self.randomCryptoByte = (0x01 | ( absTime & 0xfe))
})

这会创建 performOnCommunicationQueue 所需的 void to void 闭包。

此外,在您进行此更改后,请检查您的大括号是否匹配,我认为您可能还不够,这就是为什么自动完成没有帮助的原因。

关于ios - 函数产生预期类型 '(() -> ())?' ;你的意思是用 '()' 来调用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32789379/

相关文章:

ios - Xcode 5可以打开我的项目,但是Xcode 6在尝试打开时崩溃

swift - Xcode - 仅带有顶部标签的动态高度

ios - Xcode 在单元测试中写入文件

ios - 当我添加到基本 SDK 中时,在 Xcode 8 中找不到 SDK,它会显示此信息

iphone - 在 iphone sdk 中使用后退按钮时位置跟踪停止

ios - 使用 Swift 在 didReceiveRemoteNotification 中呈现特定的 View Controller

xcode - 核心数据产生分析器警告

ios - 如何将符合具有关联类型的协议(protocol)的不同类型添加到集合中?

swift 4 : Formatting number's into friendly K's

ios - 在 spriteKit swift 中使用 waitForDuration()