首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 2关闭故障

Swift 2关闭故障
EN

Stack Overflow用户
提问于 2016-05-17 15:07:13
回答 1查看 85关注 0票数 1

因此,最初我遇到了Swift 2闭包的一些问题,下面是我的问题:

代码语言:javascript
复制
func getImgurHotListWithViralBool(viral:Bool) -> NSArray
{
    IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral,
                                     success:{
                                        (objects:NSArray)  in
//It gives the error here*********
                                     },
                                     failure: {(error:NSError) in

                                     })
}

它给出了错误:

无法将类型'(NSArray) -> ()‘的值转换为预期的参数类型((AnyObject!) -> ->!)!“

更新:谢天谢地,Marco 帮助我解决了这个问题;

代码语言:javascript
复制
func getImgurHotListWithViralBool(viral:Bool) -> NSArray {
    IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral,
        success: { (objects: [AnyObject]!)  in
            // ...
        }, failure: { (error:NSError) in
            // ...
        })
}

现在,错误出现在error:NSError中,即:

无法将类型'(NSError) -> ()‘的值转换为预期的参数类型((AnyObject!) -> ->!)!“

我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 21:33:33

所使用的函数需要一个闭包,该闭包接受AnyObjects ([AnyObject]!)的Swift数组(隐式解包装数组)作为单个参数,如错误消息中所述,但您使用的是旧的NSArray,编译器无法将闭包的类型转换为请求的闭包,因此出现了错误,因此,按下面的代码进行更改将解决这个问题。

代码语言:javascript
复制
func getImgurHotListWithViralBool(viral:Bool) -> NSArray {
    IMGGalleryRequest.hotGalleryPage(0, withViralSort: viral,
        success: { (objects: [AnyObject]!)  in
            // ...
        }, failure: { (error:NSError) in
            // ...
        })
}

更新:得到的第二个错误和前面一样,API需要一个闭包,它接受一个隐式未包装的AnyObject数组,但是如果提供一个带有NSError的数组,则必须将failure的签名更改为

代码语言:javascript
复制
failure: { (error: [AnyObject]!) in
    // ...
}

为了解决这个问题。确保检查API的文档,以了解如何从数组中获取错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37279900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档