下面的Swift块语法有什么问题?

时间:2014-12-23 08:31:39

标签: swift amazon-web-services syntax ios8 block

我正在基于Swift的项目中集成AWS S3服务,但由于没有关于使用Swift的API的描述,因此我坚持使用下面的sysntax,所以我试图自己转换代码。

transferManager.download(downloadRequest).continueWithExecutor(BFExecutor.mainThreadExecutor(), withBlock: 
{ (task:BFTask!) -> AnyObject! in
            println("test")
        })

我收到以下错误!

Type '()' does not conform to protocol 'AnyObject'

1 个答案:

答案 0 :(得分:3)

我不确定问题是什么,但切换到常规continueWithSuccess有效。如果您需要在一个线程上执行该块,您可以在块中使用宏中央调度。

例如,如果您需要在主UI线程上执行块,则可以编写

        transferManager.download(downloadRequest).continueWithSuccessBlock({
            (task: BFTask!) -> BFTask! in
            dispatch_async(dispatch_get_main_queue(), {
                println("test")
            })
            return nil
        })

只有当您想在单独的线程上运行块时,才需要发送...。