2016-07-08 20 views
2

Ich habe an einer iMessage-Erweiterung mit einem Tutorial von WWDC-Videos von Apple gearbeitet und einen seltsamen Fehler festgestellt. Ich fing mit einem leeren Projekt an, das einen Lauf gut baute. Ich habe jedoch eine Datei für meine MSStickerBrowserViewController hinzugefügt. Der Code wurde erstellt, aber das Öffnen der Erweiterung im Simulator stürzte ab. Das Seltsame ist, Ich habe nie eine Instanz des Browsers gemacht. Warum stürzt Code, der nicht ausgeführt wird, ab?Warum ist Swift 3-Code, der nie ausgeführt wurde Laufzeitfehler werfen?

Hier ist die Fehlermeldung: dyld: Bibliothek nicht geladen: @ rpath/libswiftSwiftOnoneSupport.dylib referenzierte aus:/Users/alextyshka/Library/Developer/CoreSimulator/Geräte/BF34F16D-3CEF-4C7D-8D9A-D3D4B463F293/data/Container /Bundle/Application/75E2E14B-E76B-4EC7-9528-7CE38864B55D/BlankMessages.app/PlugIns/MessagesExtension.appex/MessagesExtension Grund: Bildtriggerung den Fehler nicht Hier ist der Code gefunden:

import UIKit 
import Messages 

class MyStickerBrowserViewController: MSStickerBrowserViewController { 
    var stickers = [MSSticker]() 
    func changeBrowserViewBackgroundColor(color: UIColor) { 
     stickerBrowserView.backgroundColor = color 
    } 
    func loadStickers() { 
     createSticker(asset: "forest", localizedDescription: "forest sticker") 
    } 
    func createSticker(asset: String, localizedDescription: String) { 
     guard let stickerPath = Bundle.main().pathForResource(asset, ofType: "png") else { 
      print("couldn't create the sticker path for", asset) 
      return 
     } 
     let stickerURL = URL(fileURLWithPath: stickerPath) //This is the line that seems to be causing the error. 
     let sticker: MSSticker 
     do { 
      try sticker = MSSticker(contentsOfFileURL: stickerURL, localizedDescription: localizedDescription) 
      stickers.append(sticker) 
      } catch { 
       print(error) 
      return 
     } 
    } 
    /* 
    override func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int { 

    } 

    override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView, stickerAt index: Int) -> MSSticker { 

    }*/ 
} 

ich habe bemerkt, wenn Ich nehme Zeile 16 heraus, die eine URL macht, der Fehler wird nicht ausgelöst.

Here ist der Link zu dem WWDC-Video, dem ich folgte. Ich habe doppelt überprüft, um sicherzustellen, dass ich das Video genau verfolgt

+0

Sie können versuchen, einen Ausnahme-Breakpoint hinzuzufügen, um zu sehen, wo genau das Problem liegt, damit wir eine bessere Vorstellung davon bekommen, was der Fehler sein könnte. – vigneshv

+0

Ich habe Haltepunkte verwendet. Der Fehler wird früh geworfen, bevor 'willBecomeActive' oder' viewDidLoad' –

+0

Der Benutzer in [dieser] (http://stackoverflow.com/questions/37820755/running-spritekit-game-in-watchos-on-apple-watch -Simulator-xcode-8-swift-3-io) Frage hatte den gleichen Fehler auf einer Apple Watch App, aber diese Lösung hat nicht für mich funktioniert. –

Antwort

0

Ich habe Xcode neu installiert und es hat funktioniert. Seltsam. Danke für den Rat aller!