2016-09-21 7 views
0

CoreDataを使用してデータを保存しようとしていますが、今日、アプリケーションをテストしようとしたときに、「致命的なエラー:オプション値のアンラッピング中に予期せぬエラーが発生しました」とEXC_BREAKPOINTメッセージが表示されました。UIApplication.sharedApplication()。としてデリゲートしてください! AppDelegate EXC_BREAKPOINT

class ViewController: UIViewController { 

let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
let managedObjectContext: NSManagedObjectContext = appDelegate.managedObjectContext <-- Here is the error 

私はUIApplication.sharedApplication()を使用しています。 AppDelegateからAppDelegateから他の関数​​を呼び出すと、同じエラーが発生します。 誰かがそれについての修正を知っていますか?

+0

早すぎます。 'viewDidLoad'にコードを入れてください – vadian

+0

@vadianしかし、私はIBActionで使うことはできません:/ – Marco

+0

両方の変数を' var'と暗黙的にアンラップしたオプションとして宣言し、 'viewDidLoad'に値を代入してください – vadian

答えて

0

初期化中にAppDelegateが使用可能であるとは限りません。 managedObjectContextとして暗黙開封されたオプションを宣言しviewDidLoad

class ViewController: UIViewController { 

    var managedObjectContext: NSManagedObjectContext! 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
     let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
     managedObjectContext = appDelegate.managedObjectContext 
    } 

} 

に値を割り当てたり、クラスの最上位レベルに初期化遅延として変数を宣言する。

lazy var managedObjectContext : NSManagedObjectContext = { 
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    return appDelegate.managedObjectContext 
}() 
+0

今、私はviewDidLoadでEXC_BREAKPOINTを取得しています... – Marco

+0

それから 'viewWillAppear'で試してください – vadian

+0

viewDidLoadと同じエラー – Marco

関連する問題