2016-12-01 10 views
-1

私の関数の引数では、filesの引数はNSMutableArrayでなければならないと宣言しました。なぜXcodeはのfiles引数があり、それをNSMutableArrayにキャストしなければならないと言うのでしょうか?なぜNSMutableArrayに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

Swift配列構文の代わりにNSMutableArrayを使用している理由はありますか? – Bob

+0

@Bob本当に私はこのアイオスのことを初めて知っていて、何かを最初に読まなくてもすぐに何かを稼ぐ必要がありました。私はしばらく時間を取ると、すぐにすべてを読んで学び、書き直します – mnewmedia

+1

SwiftでNSArrayを使わないでください。 – Alexander

答えて

2

mutableCopy NSObjectのことで実装され、次のように定義されます

func mutableCopy() -> Any 

あなたがmutableCopy()を呼び出すときによって生成されたオブジェクトをキャストする必要があります。

関連する問題