2017-02-26 8 views
0

以前に保存したデータをフェッチしようとしていますが、期待通りに動作しません。私は結果を印刷しようとすると、私は次のエラーを取得する:CoreData:フェッチしようとするとエラーが返されます。

fatal error: unexpectedly found nil while unwrapping an Optional value 
2017-02-26 15:32:32.596867 Money Manager[2047:475120] fatal error: unexpectedly found nil while unwrapping an Optional value 

私は私のために働いたすべての答えを見つけることができませんでした...私はフェッチしようとすると、ここで

はコードです:

func getExpensesData() { 
    let fetchRequest: NSFetchRequest<Activity> = Activity.fetchRequest() 
    do { 
     let results = try context.fetch(fetchRequest) as [Activity] 
     activities = results 
     for activity in activities { 
      // I get the error I mentionned just the line below 
      print(activity.title!) 
     } 
    } catch let error as NSError { 
     print("Could not fetch \(error), \(error.userInfo)") 
    } 
} 

ここで、アクティビティはエンティティです。私が作ることができ、いくつかのミスのため

func saveNewContent() { 
    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    let context = appDelegate.persistentContainer.viewContext 
    let entity: NSEntityDescription = NSEntityDescription.entity(forEntityName: "Activity", in: context)! 
    let newActivity = NSManagedObject(entity: entity, insertInto: context) as! Activity 

    if checkFieldsAreValid() { 
     newActivity.isExpense = expenseBenefitSwitch.isOn 
     newActivity.isRecurrent = recurrentSwitch.isOn 
     newActivity.amount = amountView.text 
     newActivity.title = titleView.text 
     do { 
      try context.save() 
     } catch let error as NSError { 
      print("Could not save. \(error), \(error.userInfo)") 
     } 
    } 
} 

申し訳ありませんが、それはここで私の最初のポストです:私は、データを保存するときにここで

もコードです。他のコードが必要な場合はお知らせください。

ありがとうございます!

更新#1:他のいくつかのテストを実行した後、私は私が保存しようデータは、それは...、newActivityで保存される前に、空に見えることだ

Iをここで右

try context.save() 

前にブレークポイントを置くことは、私が得るものです: Structure

更新#2:

さらに深く検索した後、私はこの問題は、私は、オブジェクトの属性のいずれかを取得しようとするとエラーが発生すると、CoreDataは、断層運動に連動しているように見えることが分かりました。

私がフェッチされたオブジェクトの一つを印刷するとき、私はこの取得:

:ここ

<Activity: 0x170284dd0> (entity: Activity; id: 0xd000000000040000 <x-coredata:// 
68148348-928B-43BE-901C-2073ABFA46EF/Activity/p1> ; data: <fault>) 

は私が(のUITableViewCellのカスタムサブクラスで使用)属性を取得しようとすると、私が使用するコードです

func initialize(withContent activity: Activity) { 
    print(activity) 
    titleLabel.text = (activity.value(forKey: "title") as! String) 
} 
+0

応答を提供してください。構造が不足している可能性があります。データを正しく解析する必要があります。あなたの応答構造をチェックしてください。 – Ren

+0

エラーが定義されていますが、アクティビティがnilで、タイトルにアクセスしようとしていますが、致命的なエラーが発生しています。 – Ren

+0

あなたのアプリを削除してもう一度試しましたか?データベースに 'Activity'エンティティがあります。このエンティティは、コアを追加する前に作成されたもので、' Activity'エンティティにはゼロ以外のタイトルのみを挿入します。 –

答えて

0

私のアプリをもっと深く投資した後、CoreDataのためにエラーが発生していないことがわかりましたが、カスタムUITableViewCellのために正しく初期化するのを忘れました...そのため、

textLabel.text = activity.title 

それは

はあなたの助けのためにありがとうございました、私はあなたのアドバイスに注意してください...活動、理由UILabelのエラーをしませ上げ!

+0

クール!あなたはその解決策を見つけました。 – Ren

関連する問題