transportation the programming para lenguaje language español descargar swift

the - swift wikipedia



¿Cómo obtengo una referencia al delegado de la aplicación en Swift? (16)

SWIFT <3

Crear un método en la clase AppDelegate para ex

func sharedInstance() -> AppDelegate{ return UIApplication.sharedApplication().delegate as! AppDelegate }

y lo llaman en otro lugar por ex

let appDelegate : AppDelegate = AppDelegate().sharedInstance()

SWIFT> = 3.0

func sharedInstance() -> AppDelegate{ return UIApplication.shared.delegate as! AppDelegate }

¿Cómo obtengo una referencia al delegado de la aplicación en Swift?

En última instancia, quiero usar la referencia para acceder al contexto del objeto gestionado.


Constructores de conveniencia

Agregar en la clase AppDelegate al final del código

Swift 3 y 4

func appDelegate () -> AppDelegate { return UIApplication.shared.delegate as! AppDelegate }

¿Para usar la referencia AppDelegate en tu clase?

Método AppDelegate de llamada

appDelegate (). setRoot ()


1) Asegúrate de import UIKit

2) let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate


Aparte de lo que se dice aquí, en mi caso me perdí la importación de UIKit:

import UIKit


Aquí está la versión Swift 2.0:

let delegate = UIApplication.sharedApplication().delegate as? AppDelegate

Y para acceder al contexto de objeto gestionado:

if let delegate = UIApplication.sharedApplication().delegate as? AppDelegate { let moc = delegate.managedObjectContext // your code here }

o, usando guardia:

guard let delegate = UIApplication.sharedApplication().delegate as? AppDelegate else { return } let moc = delegate.managedObjectContext // your code here


Aquí hay una extensión para UIApplicationDelegate que evita codificar el nombre de la clase AppDelegate :

extension UIApplicationDelegate { static var shared: Self { return UIApplication.shared.delegate! as! Self } } // use like this: let appDelegate = MyAppDelegate.shared // will be of type MyAppDelegate


En Swift 3.0 puede obtener la referencia de la aplicación por

let appDelegate = UIApplication.shared.delegate as! AppDelegate


En Swift, de fácil acceso en tus VC''s.

extension UIViewController { var appDelegate:AppDelegate { return UIApplication.sharedApplication().delegate as! AppDelegate } }


En el XCode 6.2, esto también funciona.

let appDelegate = UIApplication.sharedApplication().delegate! as AppDelegate let aVariable = appDelegate.someVariable


En mi caso, faltaba import UIKit en la parte superior de mi subclase NSManagedObject . Después de importarlo, podría eliminar ese error ya que UIApplication es la parte de UIKit

Espero que ayude a otros !!!


Es casi lo mismo que en Objective-C

let del = UIApplication.sharedApplication().delegate


Es muy simple

Instancia delegada de la aplicación

let app = UIApplication.shared.delegate as! AppDelegate

Puedes llamar a un método con una sintaxis de línea.

app.callingMethod()

Puedes acceder a una variable con este código.

app.yourVariable = "Assigning a value"


Esto podría ser usado para OS X

let appDelegate = NSApplication.sharedApplication().delegate as AppDelegate var managedObjectContext = appDelegate.managedObjectContext?


Intenta simplemente esto:

Swift 4

// Call the method (UIApplication.shared.delegate as? AppDelegate)?.whateverWillOccur()

donde en tu AppDelegate:

// MARK: - Whatever func whateverWillOccur() { // Your code here. }


La otra solución es correcta porque le proporcionará una referencia al delegado de la aplicación, pero esto no le permitirá acceder a ningún método o variable agregada por su subclase de aplicación UIA, como el contexto de objeto administrado. Para resolver esto, simplemente diríjase a "AppDelegate" o como sea que se llame a su subclase UIApplication. Al igual que:

Swift 3.x (introducido con Xcode 8)

let appDelegate = UIApplication.shared.delegate as! AppDelegate let aVariable = appDelegate.someVariable

Swift 1.2 - 2.x (introducido con Xcode 6.3)

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let aVariable = appDelegate.someVariable

Swift <1.2

let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate let aVariable = appDelegate.someVariable


Yo uso esto en Swift 2.3.

1. en la clase AppDelegate

static let sharedInstance: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

2. Llame a AppDelegate con

let appDelegate = AppDelegate.sharedInstance