swift2 URL,NSURL -标准示例代码中的编译器错误

fhity93d  于 2022-11-06  发布在  Swift
关注(0)|答案(4)|浏览(188)

m.b.我在问一个愚蠢的问题,但我在Swift和iPhone编程方面真的是新手。使用XCode 8.0。我想创建WebView应用程序,并从这里获得下一个代码:https://sourcefreeze.com/uiwebview-example-using-swift-in-ios/

我的代码:

import UIKit
import Foundation

class ViewController: UIViewController {

    @IBOutlet weak var myWebView: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let url = NSURL (string: "http://www.sourcefreeze.com");
        let requestObj = NSURLRequest(URL: url!);
        myWebView.loadRequest(requestObj);
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

当然,我已经创建了UIWebView的UI对象,并将其连接到控制器:

@IBOutlet weak var myWebView: UIWebView!

在构建期间,我收到下一个红色警报:

  • “NSURL”不能隐式转换为“URL”;是否要使用“as”来显式转换?*

据我所知,这段代码在2年前工作得很好。我想我错过了一些东西,但是什么呢?谢谢你的预付款。

cigdeys3

cigdeys31#

尝试使用URL而不是NSURL,因为在Swift 3中它已被替换为URL类型

let url = URL(string: "http://www.sourcefreeze.com")

这是苹果开发者论坛的说明。
Swift对Foundation框架的覆盖提供了URL结构,它桥接到了NSURL类。URL值类型提供了与NSURL引用类型相同的功能,并且两者可以在Swift代码中与Objective-C API交互使用。这种行为类似于Swift将标准字符串、数字和集合类型桥接到其相应的Foundation类的方式。
有关值类型的更多信息,请参见Swift编程语言(Swift 3)中的类和结构以及在Cocoa和Objective-C中使用Swift(Swift 3)中的使用可可框架。

e0bqpujr

e0bqpujr2#

这是解决问题最简单的方法:

let url = URL(string: "http://www.sourcefreeze.com")!
myWebView.load(URLRequest(url: url))

Xcode经常告诉你什么是错误的。所以从Xcode的消息,它是可能的理解,NSURL应该转换为URL。尝试阅读相关的资源和机器人使用旧的教程。斯威夫特是动态变化的语言总是尝试使用最新的资源。

voase2hg

voase2hg3#

这样试试看

myWebView.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.sourcefreeze.com")))
myWebView.delegate = self;
self.view.addSubview(myWebView)
a8jjtwal

a8jjtwal4#

以下代码有效:

let myUrl = URL (string: "http://www.sourcefreeze.com")!
    let request = URLRequest(url: myUrl);
    myWebView.loadRequest(request);

现在WebView是不可见的,但我会尝试首先在论坛中搜索解决方案。

相关问题