【发布时间】:2016-01-30 00:24:22
【问题描述】:
我在转换/理解 Obj-C 完成处理程序的工作方式以及如何将它们转换为 Swift 2.0 时遇到问题...具体来说,代码如下:
[BLAH aRandomTaskWithURL:NSURL completion:^(NSURL *compVar) {
//do something with compVar
}];
这是我的尝试:
BLAH.aRandomTaskWithURL(myURL,completion: (compVar:NSURL) ) {
print(compVar)
}
上面产生了错误“delete compVar:”...所以我删除它,然后它说“不能调用类型 (NSURL) 的参数列表类型为 ' ( () -> () )'
我曾多次尝试定义 Swift 2.0 等值的 compVar,但没有运气...我还阅读(并遵循)有关 Swift 完成变量的相关文档,但还是没有运气。我错过了什么?
但是,当我添加“Void in”时
BLAH.aRandomTaskWithURL(myURL, completion: ) { Void in
//do something
}
没有错误,但我无权访问完成变量。
这是实际的 obj-c 代码(我之前只是想保持一般性):
(void)optimalGIFfromURL:(NSURL*)videoURL loopCount:(int)loopCount completion:(void(^)(NSURL *GifURL))completionBlock {
【问题讨论】:
-
用你最好的 Swift 代码更新你的问题并指出你遇到了什么问题。
标签: ios objective-c swift