以前に保存したデータをフェッチしようとしていますが、期待通りに動作しません。私は結果を印刷しようとすると、私は次のエラーを取得する: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)
}
応答を提供してください。構造が不足している可能性があります。データを正しく解析する必要があります。あなたの応答構造をチェックしてください。 – Ren
エラーが定義されていますが、アクティビティがnilで、タイトルにアクセスしようとしていますが、致命的なエラーが発生しています。 – Ren
あなたのアプリを削除してもう一度試しましたか?データベースに 'Activity'エンティティがあります。このエンティティは、コアを追加する前に作成されたもので、' Activity'エンティティにはゼロ以外のタイトルのみを挿入します。 –