有些Objective-C库的函数将整数枚举选项作为参数,但是如果你想要默认选项,它们希望你传入0,这是典型的。但是在Swift中,这是不允许的,因为库指定了枚举类型。有没有什么方法可以在库中添加一个0枚举选项然后制作桥接代码以使其ObjC枚举在Swift中工作?
以下是iPhone应用中SDWebImageManager
的示例:
SDWebImageManager.sharedManager().downloadWithURL(url, options: 0, progress: nil) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool) -> Void in
// block code here
}
Xcode会指出options: 0
的错误,因为'Int' is not convertible to SDWebImageOptions
。我尝试了类似下面的内容,但是我得到了同样的错误:
let emptyOptions:SDWebImageOptions = 0
答案 0 :(得分:5)
从Swift 2开始,选项集的语法被更改为使用数组文字。因此,如果您不想传递任何选项,则传递一个空列表:
SDWebImageManager.sharedManager().downloadWithURL(url, options: [], progress: nil) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool) -> Void in
// code here
}