我有一个TableViewController,我试图通过URL将其传递给另一个ViewController上的WebView
我正在覆盖以下函数,如果我将URL设置为静态,则可以找到它,因为您可以在注释中看到let newsLink
常量
let newsLink = "http://www.stuff.co.nz/business/industries/69108799/Kirkcaldie-Stains-department-store-to-become-David-Jones"
但是,如果下面从URL
拉出indexPath.row
,则由于某种原因失败并传递nil
值
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
let newsLink = (posts.objectAtIndex(indexPath.row).valueForKey("link") as! String)
//let newsLink = "http://www.stuff.co.nz/business/industries/69108799/Kirkcaldie-Stains-department-store-to-become-David-Jones"
println(newsLink)
let newsWebViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("idNewsWebViewController") as! NewsWebViewController
newsWebViewController.newsURL = NSURL(string: newsLink)
showDetailViewController(newsWebViewController, sender: self)
}
如果我在下面println(),我得到与URL
完全相同的输出我在测试let newsLink
常量
println(posts.objectAtIndex(indexPath.row).valueForKey("link") as! String)
我无法弄清楚为什么会失败。希望比我更聪明的人可以提供帮助。
接收端VC上的代码低于“
var newsURL : NSURL!
//var newsURL = NSURL(string: "http://www.google.co.nz")
@IBOutlet weak var newsWebView: UIWebView!
@IBOutlet weak var descTextView: UITextView!
并在viewDidAppear函数中
let request : NSURLRequest = NSURLRequest(URL: newsURL!)
newsWebView.loadRequest(请求)
更多信息
var types
var posts = NSMutableArray()
var elements = NSMutableDictionary()
我如何添加对象
elements.setObject(urlLink, forKey: "link")
posts.addObject(elements)
答案 0 :(得分:0)
你能否展示"帖子"的声明/结构?变量?
如果没有更多信息,我唯一能想到的就是" link"实际上并不是一个字符串,而是印刷时显示内容的东西(可能是NSURL)。这可以解释println显示相同的url但是演员失败。
当您打印或隐式地将任何对象转换为String(如println中)时,它会调用" description"该对象的方法。
例如:
class MyURLContainer {
var link:String
override func description() -> String {
return link
}
}
let url = MyURLContainer()
let url.link = "http://www.example.com"
println( "my link: \(url)" ) // this would show the link correctly
let link = url as? String // this will be nil, as url can't be casted to String
答案 1 :(得分:0)
我认为RewriteEngine On
RewriteRule ^1\.html$ /folder/1 [R=301,L,NC]
RewriteRule ^2\.html$ /2 [R=301,L,NC]
RewriteRule ^3\.html$ /3 [R=301,L,NC]
RewriteRule ^3/?$ /vw-vans/another-folder/2 [R=301,L,NC]
# catchall rule for .html files
RewriteRule ^.+?\.html$ /folder? [R=301,L,NC]
不会返回(posts.objectAtIndex(indexPath.row).valueForKey("link")
类型。它可能已经是NSURL,因此在String
你能否发布更多有关它的细节。希望这有帮助。
答案 2 :(得分:0)
事实证明,这是NSURL不喜欢的网址编码。
解决方案是使用以下内容:
var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
我是swift的新手,但这看起来有点乱。