shu*_*low 8 global-variables ios swift
我想知道如何使用iOS项目的全局变量.
如今,我发现了一个由Swift撰写的文档.
本文档包含一些代码.
import UIKit
let log = ColorLogger.defaultInstance
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
Run Code Online (Sandbox Code Playgroud)
该程序只有全局变量n,即log.
log通常用于开发,而不是生产.
我认为日志应该在appdelegate中.
但我不知道如何处理iOS Project变量的标准.
是否使用iOS产品的全局变量标准?
Sai*_*ira 15
有几种方法可以在Swift中创建"全局"变量,我将介绍其中的一些变量.
AppDelegateAppDelegate似乎是一些全局变量的逻辑位置.正如您所说,您可以创建记录器实例或创建其他内容的实例AppDelegate.
要创建将用作全局变量的实例,请转到AppDelegate.swift并创建如下变量:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
...
let myAppInstance = SomeClass()
...
}
Run Code Online (Sandbox Code Playgroud)
然后,如果您想访问myAppInstance应用程序的任何其他部分,您可以编写:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.myAppInstance.doSomething()
Run Code Online (Sandbox Code Playgroud)
单身人士可能是通过任何Apple平台使用的最常用的设计模式之一.它们存在于您创建应用程序时使用的几乎所有iOS API中,它们通常用于创建全局变量.
本质上,单例是延迟加载的实例,只创建一次.我们来看一下代码示例:
class MyDataStructure {
static var sharedInstance = MyDataStructure() // This is singleton
private init() {
}
}
Run Code Online (Sandbox Code Playgroud)
我们创建了类MyDataStructure和单例实例sharedInstance.这是单身人士最常见的名称,因为单身人士是通过应用程序共享的实例.
注意static在定义单例时使用关键字.statickeyword告诉编译器sharedInstance仅在第一次访问时创建.对sharedInstancewill的任何其他访问只是重用第一次创建的实例.
要使用它你只需写:
MyDataStructure.sharedInstance
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8228 次 |
| 最近记录: |