Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法转换类型为';(u)->;()';到预期的参数类型';(()->;())?&x27;_Swift - Fatal编程技术网

Swift 无法转换类型为';(u)->;()';到预期的参数类型';(()->;())?&x27;

Swift 无法转换类型为';(u)->;()';到预期的参数类型';(()->;())?&x27;,swift,Swift,我已将iOS Swift 3应用程序迁移到Swift 4。 我得到: 无法将类型为“(?)->()”的值转换为所需的参数类型“(()->())?” 尝试调用此方法时出错: self.aPIManager.registerDeviceId(deviceTokenStr,onSuccess:{ getRegister in }, onError: { message in AppUtility.hideLoading(self.window!) })

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

无法将类型为“(?)->()”的值转换为所需的参数类型“(()->())?”

尝试调用此方法时出错:

self.aPIManager.registerDeviceId(deviceTokenStr,onSuccess:{
            getRegister in
},
    onError: { message in
        AppUtility.hideLoading(self.window!)
})
下面是apimager.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!)
})

我是斯威夫特的新手。如果您能向我提供有关这种类型的函数声明(声明中没有名称的函数)的一些信息,我将不胜感激。

您的success closure没有参数,但您在调用==>onSuccess:{getRegister in…}时使用了它删除
getRegister in
我想知道为什么它不会导致Swift 3中的错误“我想知道为什么它不会导致Swift 3中的错误”问题是Swift 4中
的含义已更改。简单。不要使用
。如果需要将类型作为可选类型,请使用
。是一个很好的开始。成功闭包没有参数,但在调用==>onSuccess:{getRegister in…}remove
getRegister in
时使用了它。我想知道为什么它不会导致Swift 3出错“我想知道为什么它不会导致Swift 3出错”问题在于Swift 4中
的含义已更改。简单。不要使用
。如果需要将类型作为可选类型,请使用
。这是一个很好的开始。