将0作为枚举选项传递给Swift中的Objective C函数

sud*_*udo 5 enums objective-c swift

有一些Objective-C库具有将整数枚举选项作为参数的函数,但是如果你想要默认选项,它们希望你传入0,这是典型的.但是在Swift中,这是不允许的,因为库指定了枚举类型.有没有什么方法可以在库中添加一个0枚举选项然后制作桥接代码以使其ObjC枚举在Swift中工作?

以下SDWebImageManager是iPhone应用程序中的示例:

SDWebImageManager.sharedManager().downloadWithURL(url, options: 0, progress: nil) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool) -> Void in
            // block code here
        }
Run Code Online (Sandbox Code Playgroud)

Xcode会指出一个错误,options: 0因为它说'Int' is not convertible to SDWebImageOptions.我尝试了类似下面的内容,但是我得到了同样的错误:

let emptyOptions:SDWebImageOptions = 0
Run Code Online (Sandbox Code Playgroud)

rob*_*off 5

从Swift 2开始,选项集的语法被更改为使用数组文字.因此,如果您不想传递任何选项,则传递一个空列表:

SDWebImageManager.sharedManager().downloadWithURL(url, options: [], progress: nil) { (image:UIImage!, error:NSError!, cacheType:SDImageCacheType, finished:Bool) -> Void in
    // code here
}
Run Code Online (Sandbox Code Playgroud)