我試圖獲取我以前保存過的數據,但事情並沒有像預期的那樣進行。當我嘗試打印結果,我得到以下錯誤:CoreData:錯誤返回nil試圖獲取
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)")
}
}
其中Activity是一個實體。
這裏也是代碼的時候我保存數據:
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,看起來在保存之前空...
當我將斷點權利之前
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
錯誤定義,活動是零,它試圖訪問標題,並導致致命的錯誤。 – Ren
您是否嘗試刪除應用並重試?你可能在你的數據庫中有一個'Activity'實體,它是在你添加核心之前創建的,以確保只插入帶有非零標題的'Activity'實體。 –