我想我的代码转换为斯威夫特3,我得到这个错误:参数标签“(网址:)”不匹配任何可用的重载
Argument labels '(URL:)' do not match any available overloads
let viewController = VisitableViewController(URL: URL)
这里是我的全部代码:
var window: UIWindow?
var navigationController = UINavigationController()
var session = Session()
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window?.rootViewController = navigationController
visit(URL: NSURL(string: "http://localhost:9292/")!)
return true
}
func visit(URL: NSURL) {
let viewController = VisitableViewController(URL: URL)
navigationController.pushViewController(viewController, animated: true)
session.visit(viewController)
}
这里是VisitableViewController:
import UIKit
open class VisitableViewController: UIViewController, Visitable {
open weak var visitableDelegate: VisitableDelegate?
open var visitableURL: URL!
public convenience init(url: URL) {
self.init()
self.visitableURL = url
}
// MARK: Visitable View
open private(set) lazy var visitableView: VisitableView! = {
let view = VisitableView(frame: CGRect.zero)
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
fileprivate func installVisitableView() {
view.addSubview(visitableView)
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[view]|", options: [], metrics: nil, views: [ "view": visitableView ]))
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[view]|", options: [], metrics: nil, views: [ "view": visitableView ]))
}
// MARK: Visitable
open func visitableDidRender() {
self.title = visitableView.webView?.title
}
// MARK: View Lifecycle
open override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.white
installVisitableView()
}
open override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
visitableDelegate?.visitableViewWillAppear(self)
}
open override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
visitableDelegate?.visitableViewDidAppear(self)
}
/*
If the visitableView is a child of the main view, and anchored to its top and bottom, then it's
unlikely you will need to customize the layout. But more complicated view hierarchies and layout
may require explicit control over the contentInset. Below is an example of setting the contentInset
to the layout guides.
public override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
visitableView.contentInset = UIEdgeInsets(top: topLayoutGuide.length, left: 0, bottom: bottomLayoutGuide.length, right: 0)
}
*/
}
您需要向我们展示'VisitableViewController'构造函数。 –
请⌘-点击'VisitableViewController'并在头文件中查找正确的方法。 – vadian
@vadian它来自UIKits框架,我已经更新了下面的代码。 – Hugo