首页 > 解决方案 > 无法将类型“(_) -> ()”的值转换为预期的参数类型“(() -> ())?”

问题描述

我已将我的 iOS Swift 3 应用程序迁移到 Swift 4。我得到了:

无法将类型“(_) -> ()”的值转换为预期的参数类型“(() -> ())?”

尝试调用此方法时出错:

self.aPIManager.registerDeviceId(deviceTokenStr,onSuccess:{
            getRegister in
},
    onError: { message in
        AppUtility.hideLoading(self.window!)
})

这是声明aPIManager.registerDeviceId

open  func registerDeviceId(_ deviceId: String, onSuccess successBlock: (() -> ())!, onError errorBlock: ((String?) -> Void)!) {
    ...
}

在迁移到 Swift 4 之前,以下是 Swift 3 中的相同功能:

open  func registerDeviceId(_ deviceId: String, onSuccess successBlock: 

(() -> Void)!, onError errorBlock: ((String?) -> Void)!) {
   ...        
}

这是电话:

self.aPIManager.registerDeviceId(deviceTokenStr,onSuccess:{
        getRegister in
},
    onError: { message in
        AppUtility.hideLoading(self.window!)
})

我是新来的。如果您向我提供有关此类函数声明(声明中没有名称的函数)的一些信息,我将不胜感激。

标签: swift

解决方案


推荐阅读