【发布时间】:2024-01-09 17:36:02
【问题描述】:
我在 Swift 1.2 中有一个代码来创建一个 dispatch_block_t 数组,它工作正常。但是相同的代码在 Swift 2.0 中会引发错误。
var menuView: btSimplePopUP!
let actions: [dispatch_block_t] = [{self.pickImages()},
{self.takePicture()},
{self.pickVideos()},
{self.shootVideo()},
{self.recordAudio()},
{self.closeView()}]
menuView = btSimplePopUP(itemImage: imgs as [AnyObject],
andTitles: titles as [AnyObject],
andActionArray: actions as NSArray as [AnyObject],
addToViewController: self)
以上代码在 Swift 1.2 中运行良好。但是在 Swift 2.0 中,它会抛出以下错误
[dispatch_block_t] 不能转换为 NSArray
如何使用 dispatch_block_t 创建 NSArray?
更新:
我已经用下面的代码替换了上面的代码,
let actions: [Any] = [{self.pickImages()},
{self.takePicture()},
{self.pickVideos()},
{self.shootVideo()},
{self.recordAudio()},
{self.closeView()}]
menuView = btSimplePopUP(itemImage: imgs as [AnyObject],
andTitles: titles as [AnyObject],
andActionArray: actions as! [AnyObject],
addToViewController: self)
现在,之前的错误消失了。但我在运行时收到以下错误,
致命错误:数组元素无法桥接到 Objective-C
任何帮助将不胜感激。
【问题讨论】:
标签: ios swift swift2 grand-central-dispatch