Appdelegate中的全局变量在swift中

Sau*_*abh 12 ios swift

我将一些数据从viewcontroller保存到appdelegate变量并从另一个视图控制器中获取它.Below是app delegate的代码

class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var navigationController: UINavigationController?
var mainDic:NSMutableDictionary?
Run Code Online (Sandbox Code Playgroud)

用于设置mainDic的代码

func filterResponse(response:NSDictionary){

    var appDelegate=AppDelegate()
    appDelegate.mainDic=response.mutableCopy() as? NSMutableDictionary
}
Run Code Online (Sandbox Code Playgroud)

用于获取字典的代码.

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
println(appDelegate.mainDic)
Run Code Online (Sandbox Code Playgroud)

问题是我得到的输出为零.请让我正确.

Leo*_*Leo 24

这是你的错误

var appDelegate=AppDelegate() //You create a new instance, not get the exist one
Run Code Online (Sandbox Code Playgroud)

您需要访问现有的AppDelegate

let appDelegate = UIApplication.shared.delegate as! AppDelegate
Run Code Online (Sandbox Code Playgroud)


San*_*ngh 19

Swift 4.0

 let appDelegate = UIApplication.shared.delegate as! AppDelegate 
 let aVariable = appDelegate.value
Run Code Online (Sandbox Code Playgroud)

Swift 3.0

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let aVariable = appDelegate.someVariable
Run Code Online (Sandbox Code Playgroud)

Swift 2.0

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let aVariable = appDelegate.someVariable
Run Code Online (Sandbox Code Playgroud)