我正在开发一个应用程序,它的数据来自URL,这是我正在使用的示例代码 AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var fromUrl: String!
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject)-> Bool {
print("Host: \(url.host!)")
self.fromUrl = url.host!
return true
}
ViewController.swift
import UIKit
class ViewController: UIViewController {
let appDelegate = AppDelegate()
override func viewDidLoad() {
super.viewDidLoad()
print(appDelegate.fromUrl)
}
它正在记录来自app delegate的url.host
。但是,当我尝试从fromUrl
中记录ViewController.swift
的值时,它会返回nil
。您认为这似乎是什么问题?谢谢!
答案 0 :(得分:1)
在ViewController
中声明AppDelegate
时,实际上是在实例化ApplicationDelegate
的另一个实例。这与您实际使用的if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
print(appDelegate.fromUrl)
}
实例不同。尝试使用以下方法获取该参考:
#/profile?color=green