2016-06-28 11 views
2

Wir haben ein Objective-C-Projekt, das einige neue Features erhalten wird. Diese neuen Funktionen werden in Swift implementiert. Bisher haben wir alles mit Swift und Objective C nebeneinander und die meisten Dinge sind ziemlich angenehm zu implementieren.Access App-Delegat von Objective C Projekt in Swift

Eine Sache, die ich zur Zeit nicht geschafft habe, ist der Zugriff auf den (objc) -App-Delegaten von innerhalb von swift, insbesondere die Methoden und den Kontext des verwalteten Objekts.

Ich versuchte

let appDelegate = UIApplication.sharedApplication().delegate! as UIApplicationDelegate 

ohne Erfolg.

Wie greife ich auf den in Ziel C geschriebenen Anwendungsdelegaten aus meinem schnellen Code zu und verwende dessen Methoden sowie den Kontext des verwalteten Objekts?

+0

Sie sollten nicht wirklich den Kerndatenstapel in der App Delegate haben ... – Wain

Antwort

3

Verwenden Sie Ihre AppDelegate Klassennamen statt UIApplicationDelegate

let appDelegate = UIApplication.sharedApplication().delegate! as <<Your Appdelegate Class>> 

und auch, dass AppDelegate in Bridging-Header-Datei importieren. "Bridging-Header" ist für beide Seiten Brückenverbindung verwendet

+0

Die App Delegate-Klasse (<< Ihre Appdelegate-Klasse >>) scheint unbekannt zu sein, da es als unbekannter Typ bezeichnet wird, wenn ich das tue – Exinferis

+0

"Bridging-Header" wird für beide Seiten Bridge-Verbindung verwendet, so importieren, dass appdelegate in Bridging-Header-Datei .. – Ammaiappan

1

Sie können versuchen, diese

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

1

lassen AppDelegate. AppDelegate = UIApplication.sharedApplication() Delegat als! AppDelegate

+0

In diesem Fall scheint "AppDelegate" ein unbekannter Typ – Exinferis

+0

Ich verwende als! AppDelegate (Dies sollte der Name Ihrer AppDelegate-Klasse sein.). –

Verwandte Themen