指定字符串时无法将 NSURL 类型的值转换为 NSString (Swift)
Could not cast value of type NSURL to NSString when String is specified (Swift)
我有一种方法旨在将网站加载到 UIWebView
:
func setImageForURL(urlString:String, completion:((image:UIImage?)->Void)?) {
self.completion = completion
guard let url = NSURL(string: urlString) else {
self.completion?(nil)
return
}
let request = NSURLRequest(URL: url)
webview = UIWebView(frame: self.bounds)
webview!.delegate = self
webview?.scalesPageToFit = true
webview!.loadRequest(request);
}
该方法在以下 loadWebsite
方法中调用:
func loadWebsite(item:ShareItem) {
activitySpinner.startAnimating()
imageView.setImageForURL((item.asset as? String)!) { (image) in
self.showActionButton(true)
self.activitySpinner.stopAnimating()
self.actionButton.titleLabel?.text = "Open"
}
}
我在以下行遇到崩溃:
imageView.setImageForURL((item.asset as? String)!) { (image) in
共 Could not cast value of type 'NSURL' (0x10fd8ee98) to 'NSString' (0x10eccdb48).
我不明白为什么,因为我将类型指定为 String
,而不是 NSString
。有人有一些见解吗?
换行
imageView.setImageForURL((item.asset as? String)!) { (image) in
到
imageView.setImageForURL((item.asset as? NSURL)!) { (image) in
如果 item.asset
是一个字符串那么你这个 -
imageView.setImageForURL(NSURL(string:(item.asset as? String)!)) { (image) in
您不能像那样将 NSURL 转换为字符串(从您的错误日志中,我假设 item.asset
returns 是 NSURL
而不是 String)
。
您需要使用:
imageView.setImageForURL(item.asset.absoluteString) { (image) in
self.showActionButton(true)
self.activitySpinner.stopAnimating()
self.actionButton.titleLabel?.text = "Open"
}
我有一种方法旨在将网站加载到 UIWebView
:
func setImageForURL(urlString:String, completion:((image:UIImage?)->Void)?) {
self.completion = completion
guard let url = NSURL(string: urlString) else {
self.completion?(nil)
return
}
let request = NSURLRequest(URL: url)
webview = UIWebView(frame: self.bounds)
webview!.delegate = self
webview?.scalesPageToFit = true
webview!.loadRequest(request);
}
该方法在以下 loadWebsite
方法中调用:
func loadWebsite(item:ShareItem) {
activitySpinner.startAnimating()
imageView.setImageForURL((item.asset as? String)!) { (image) in
self.showActionButton(true)
self.activitySpinner.stopAnimating()
self.actionButton.titleLabel?.text = "Open"
}
}
我在以下行遇到崩溃:
imageView.setImageForURL((item.asset as? String)!) { (image) in
共 Could not cast value of type 'NSURL' (0x10fd8ee98) to 'NSString' (0x10eccdb48).
我不明白为什么,因为我将类型指定为 String
,而不是 NSString
。有人有一些见解吗?
换行
imageView.setImageForURL((item.asset as? String)!) { (image) in
到
imageView.setImageForURL((item.asset as? NSURL)!) { (image) in
如果 item.asset
是一个字符串那么你这个 -
imageView.setImageForURL(NSURL(string:(item.asset as? String)!)) { (image) in
您不能像那样将 NSURL 转换为字符串(从您的错误日志中,我假设 item.asset
returns 是 NSURL
而不是 String)
。
您需要使用:
imageView.setImageForURL(item.asset.absoluteString) { (image) in
self.showActionButton(true)
self.activitySpinner.stopAnimating()
self.actionButton.titleLabel?.text = "Open"
}