在swift中,如何在应用程序委托中实现变量,以便在应用程序中的任何位置检索该变量?

在swift中,如何在应用程序委托中实现变量,以便在应用程序中的任何位置检索该变量?,swift,appdelegate,Swift,Appdelegate,在swift中,如何在应用程序委托中创建变量,以便在应用程序中的任何位置检索该变量? 我不是在说NSManagedObject 我知道它是从以下几点开始的: let appDelegate = UIApplication.shared.delegate as! AppDelegate 我有一个班主任 class Personne { var One: String var Two: Float } 和另一个创建单例的类: class PersonneController { var shar

在swift中,如何在应用程序委托中创建变量,以便在应用程序中的任何位置检索该变量? 我不是在说NSManagedObject

我知道它是从以下几点开始的:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
我有一个班主任

class Personne {
var One: String
var Two: Float
}
和另一个创建单例的类:

class PersonneController {
var shared = Personne()
在我的应用程序中,我创建了这样一个实例:

var personne = Personne()

所以每个变量都是通过

personne.shared.myvariable

如何将personne放入应用程序委托中,以便从任何地方检索它?

在类中

class AppDelegate..... {
  var name:String?
}
然后

但是对于这一点,最好创建一个像

class Service {
  static let shared = Service()
  var name:String?
}
然后


甚至可以将其作为全局变量。在AppDelegate中创建“Personne”类的实例
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let aVariable = appDelegate.blabla
(var personee=Personne())

二,。在AppDelegate中创建一个函数,该函数将返回AppDelegate的实例

类func appDelegate()->appDelegate {

将UIApplication.shared.delegate返回为!AppDelegate

}

三,。你可以这样打电话


AppDelegate.AppDelegate()。persnee

“为了在应用程序的任何地方检索它”虽然很诱人,但你绝对不希望这样。可以从任何地方访问的可变内容可以从任何地方更改,这意味着您无法轻松读取任何访问该值的代码。您的局部推理使您认为某些代码应该以一种方式运行,但它可以做完全其他的事情,因为其他模块可以在您脚下访问和更改全局值。它变成了一场真正的噩梦easily@Alexander-总的来说,你是对的,只是我采用的解决方案不同。这里有一个链接可以很好地解释这一点@莫妮卡,你真的很接近。你要找的是电话,也要检查一下
print(Service.shared.name)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let aVariable = appDelegate.blabla