2016-12-13 5 views
1

私はXcode 8とSwift 2.3を使用しており、永続ストアにいくつかのデフォルトデータを挿入する際に発生するコアデータの問題をデバッグしようとしています。私はコアデータブックから少し頭の中で学んでいますXcodeのデバッグセッションが停止しているのはなぜですか?

この機能はデフォルトのデータをインポートする必要があるかどうかをチェックしています(私を信頼しています)。そして必要ならばそれを設定します:私とすぐに

private let _sharedCDHelper = CDHelper() /* breakpoint 3 */ 
class CDHelper : NSObject { 

// MARK: - SHARED INSTANCE 
class var shared : CDHelper { 
    return _sharedCDHelper /* breakpoint 2 */ 
} 

、ブレークポイントで停止3:breakpoint1で

func checkIfDefaultDataNeedsSetup (url:NSURL, type:String) { 
     if isDefaultDataAlreadySetupForStoreWithURL(url, type: type) == false { 

      if let lift = NSEntityDescription.entityForName("Lift", inManagedObjectContext: CDHelper.shared.context) { /*breakpoint*/ 1 

       // not returning here 
       let newLiftEvent = Lift(entity: lift, insertIntoManagedObjectContext: CDHelper.shared.context) 

       newLiftEvent.uid = 0 
       newLiftEvent.liftName = "Back Squat" 

       CDHelper.saveSharedContext() 

      } else { 
      // skip setup 
      } 
      return 
     } 

はそれが私はそれがブレークポイント2と3で停止しているCDHelper.shared.context(inManagedObjectContext引数)を呼び出し、 [ステップイン]をクリックします。

enter image description here

私はそれはそれは、CDHelper.shared.contextを取得するためにオフに行ってきましたが、それはないブレークポイント1の後に次の行に戻ることが期待されます。 XcodeとSimulatorはハングアップしません。それはちょうどこの点に達し、何かを待っているかのようにそこにとどまります。

私はこのオプションのバインディングを推測しています。if let lift = NSEntityDescription.entityForName("Lift", inManagedObjectContext: CDHelper.shared.context)は割り当てられていないので、メソッドには入っていません。しかし、私は、LiftエンティティがmanagedObjectContext内にあることができると確信しています。私は.xcdatamodeldでそれを見ます、私はDBをSQLiteのために使用しています。私はデータモデルを削除して再作成しました。また、.MainQueueConcurrencyTypeだけを使用していることを確認しました。

誰もが見ることができる、または私が探すべき他のものがあるという明らかな問題はありますか? Liftエンティティが管理対象オブジェクトのコンテキスト内にあることを確認するために何かできることがあると思いますか?

答えて

0

私は推測なぜ、このオプションの結合if let lift = NSEntityDescription.entityForName("Lift", inManagedObjectContext: CDHelper.shared.context)

が割り当てられて取得されていない推測していますか?すべてのブレークポイントを削除または無効にし、その行にブレークポイントを設定します。今すぐアプリケーションを実行します。そのブレークポイントで一時停止すると、ステップオーバーします。今あなたがどこにいるか見るために見てください。

関連する問題