原来我在Swift 2关闭时遇到了一些问题,这是我的问题:
func getImgurHotListWithViralBool(viral:Bool) -> NSArray
{
IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral,
success:{
(objects:NSArray) in
//It gives the error here*********
},
failure: {(error:NSError) in
})
}
它给出错误:
无法转换类型'(NSArray)的值 - > ()'预期的论点 type'(([AnyObject]!) - > Void)!'
更新 值得庆幸的是, Marco Boschi 帮助我解决了这个问题;
func getImgurHotListWithViralBool(viral:Bool) -> NSArray {
IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral,
success: { (objects: [AnyObject]!) in
// ...
}, failure: { (error:NSError) in
// ...
})
}
现在错误出现在error:NSError
中,即:
无法转换类型的值'(NSError) - > ()'预期的论点 type'(([AnyObject]!) - > Void)!'
我该怎么办?
答案 0 :(得分:2)
您正在使用的函数需要一个闭包,它接受一个AnyObject
s([AnyObject]!
)的Swift数组作为单个参数,如错误消息中所述,但是你使用的是旧的NSArray
并且编译器无法将闭包的类型转换为请求的类型,因此错误,更改下面的代码将解决它。
func getImgurHotListWithViralBool(viral:Bool) -> NSArray {
IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral,
success: { (objects: [AnyObject]!) in
// ...
}, failure: { (error:NSError) in
// ...
})
}
UPDATE:您获得的第二个错误与之前相同,API需要一个接受隐式解包的AnyObject
数组的闭包,但是您提供了一个NSError
1}},您必须将failure
的签名更改为
failure: { (error: [AnyObject]!) in
// ...
}
为了解决它。请务必查看API文档,了解如何从阵列中获取错误。