2017-10-07 8 views
0

Ich versuche, meine iMessage App auf Swift 4 zu aktualisieren. Dieser Abschnitt des Beispielcodes funktionierte perfekt in Swift 3, gibt aber Fehler beim Versuch, zu Swift 4 zu verschieben. Der folgende Code ist in a Klasse, in der die Datei Teil des Hauptziels der App sowie der iMessage App ist.Swift 4 Fehler Running Code in Extension

#if IN_EXTENSION 
    // Do nothing since it's running in iMessage Extension 
    print("In extension") 
#else 
    let helper = Helper() 
    helper.test() 

    UIApplication.shared.shortcutItems = [] 

    let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main) 
    let testViewController : UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "Test") as UIViewController 
    UIApplication.shared.keyWindow?.rootViewController = testViewController 
#endif 

Es gibt Fehler wie shared is unavailable. Das macht Sinn, da es in iMessage Apps nicht verfügbar ist.

Wie dies zuvor funktioniert hat, ist in Other Swift Flags Ich habe -DIN_EXTENSION zu der iMessage App-Erweiterung hinzugefügt, aber nicht die Haupt-App.

Es gibt viele Ähnlichkeiten zwischen meiner iMessage App und der Haupt-App. Also möchte ich meinen Code sauber halten und Code nicht wiederholen. Das sollte also möglich sein.

Ich bin mir nicht sicher, warum nach der Konvertierung zu Swift 4 plötzlich Fehler wirft.

Irgendwelche Ideen zur Behebung?

+0

Offensichtlich taucht es in die '# else' auch in iMessage .. – matt

+0

@matt Nur das herausgefunden. Aus irgendeinem Grund gab es bei der Wiederherstellung plötzlich völlig andere Fehler. Nach dem Reparieren ist dieser Fehler vollständig verschwunden. Scheint wie ein Fehler mit Xcode oder etwas. –

+1

Sehr möglich! Irreführende Fehler treten auf, wenn andere Fehler auftreten. Ich bin froh, dass du es sortiert hast. – matt

Antwort

-1

Aus irgendeinem Grund, nachdem ich meine App gerade neu aufgebaut habe, ging dieser Fehler weg und es gab mir völlig andere Fehler. Nach dem Lösen dieser Fehler verschwanden diese Fehler vollständig. Scheint wie ein Fehler mit Xcode oder etwas.