Swift中的Master Detail应用程序 - 如何将字符串转换为URL

时间:2017-09-29 21:25:27

标签: swift url

我是新来的,所以请耐心等待。我有一个Master-Detail应用程序,在DetailViewController.swift文件中,这是configureView func,它调用Web视图来打开一个网页。

它抱怨let request = URLRequest(url:url)行,因为url变量被定义为字符串。我已经尝试了一切,但它不起作用。

顺便说一句,MasterViewController.MyVariables.urlString是一个字符串数组。

func configureView() {
    // Update the user interface for the detail item.
    if let detail: AnyObject = detailItem {
        if let myWebview = webView {
            let url =   MasterViewController.MyVariables.urlString
            let request = URLRequest(url: url)
            myWebview.scalesPageToFit = true
            myWebview.loadRequest(request)
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您可以传递URL对象,也可以从您传递的字符串中创建URL对象。无论如何,你需要将你的字符串转换为URL

if let url = URL(string: MasterViewController.MyVariables.urlString) {
    // use url in here
}

<强>更新
将此用于您的示例:

if let url = URL(string: MasterViewController.MyVariables.urlString) {
    // use url in here
    let request = URLRequest(url: url)
}

更新2:
您的Structarray of strings。然后你需要这样做才能得到你想要的值:

struct MyVariables {
    static var urlString: [String]? = ["something"]
}

if let str = MyVariables.urlString?.first, let url = URL(string: str) {
    // use url in here
    let request = URLRequest(url: url)
    print(url)
}

现在我正在使用MyVariables.urlString?.first,将来如果你想要另一个索引,那么你需要得到它。

答案 1 :(得分:0)

这就是我做的工作:

let stringRepresentation = MasterViewController.MyVariables.urlString?.joined(separator:“”)

            print ("urlString", MasterViewController.MyVariables.urlString)
            print ("sR",stringRepresentation)

            let url = NSURL(string: stringRepresentation as! String)
            let request = URLRequest(url: url! as URL)

            myWebview.scalesPageToFit = true
            myWebview.loadRequest(request)