为什么我必须将NSMutableArray转换为NSMutableArray?

时间:2016-12-01 21:19:25

标签: swift casting

在我的函数参数中,我声明files参数必须是NSMutableArray类型。为什么Xcode然后说files参数是典型AnyObject而我必须将其转换为NSMutableArray

internal func downloadMultiple(files: NSMutableArray, remoteBaseUrl: NSURL, completion: (result: Int)->()) -> Void {
    self.filesToDownload = files.mutableCopy() as! NSMutableArray // why this cast necessary?
    self.cb = completion

    for item in files {
        print("file ", item["file"] as! String)
        self.download(remoteBaseUrl.URLByAppendingPathComponent(item["file"] as! String)!)
    }
}

1 个答案:

答案 0 :(得分:2)

func mutableCopy() -> Any 由NSObject实现,定义为:

mutableCopy()

因此,当您调用show columns from table_name 时,需要对结果对象进行强制转换。