我一直收到以下错误:无法使用列表类型为'(NSData,MIMEType:String,textEncodingName:nil,baseURL:nil)'的参数调用loadData
用于loadData方法。
var filePath = NSBundle.mainBundle().pathForResource("fractal", ofType: "gif")
var gif = NSData(contentsOfFile: filePath!)
var webViewBG = UIWebView(frame: self.view.frame)
webViewBG.loadData(gif!,MIMEType: "image/gif",textEncodingName: nil,baseURL: nil) // this line of code causes the build error
最佳答案
您应该检查loadData
函数签名,即:
func loadData(_ data: NSData, MIMEType MIMEType: String,
textEncodingName textEncodingName: String, baseURL baseURL: NSURL)
textEncodingName
是String
,而不是String?
,因此您不能传递nil
。类型为baseURL
而不是NSURL
的NSURL?
同样适用。在这种情况下,您可以传递
utf-8
和http://localhost/
之类的任何值来满足非null条件。检查this thread以了解其他方法。
尝试最小化
!
的使用,以避免运行时失败。像这样的东西更健壮:guard let filePath = NSBundle.mainBundle().pathForResource("fractal", ofType: "gif"),
let gifData = NSData(contentsOfFile: filePath) else {
return
}
var webViewBG = UIWebView(frame: self.view.frame)
webViewBG.loadData(gifData, MIMEType: "image/gif", textEncodingName: "utf-8",
baseURL: NSURL(string: "http://localhost/")!)