我很努力地將我的邏輯轉換爲Swift 2,從1.2中的工作正常,並希望有人能夠啓發我嗎?Swift 2嘗試抓取,而不是如果讓
這是雨燕1.2,讓我要麼更新記錄或插入一個新的...
if let people: [People] = DataManager.getContext().executeFetchRequest(fetchRequest) as? [People] {
// stuff here
DataManager.saveManagedContext()
}
else if let person: People = NSEntityDescription.insertNewObjectForEntityForName(entityNamePeople, inManagedObjectContext: DataManager.getContext()) as? People {
// stuff here
DataManager.saveManagedContext()
}
但現在斯威夫特2我有這個這是我覺得一樣的第一個if語句中1.2代碼並允許更新記錄,但不再更多if/else如何操作插入部分?
do {
let people:[People] = try DataManager.getContext().executeFetchRequest(fetchRequest) as! [People]
// stuff here
DataManager.saveManagedContext()
} catch {
}
感謝advanve
感謝快速回復。這部分解決了這個問題,但是如果產生警告,其他部分在'try'表達式中沒有發生調用拋出函數的情況。 – Piginhat
啊,是的,這是我在答案中的注意點:我沒有檢查'DataManager.getContext()。executeFetchRequest'和'NSEntityDescription.insertNewObjectForEntityForName'實際* throw *,我只是使用你的示例代碼作爲基礎。只要移除不會拋出的方法的「try」即可。 – Moritz
謝謝!這真的讓我感到t as不安,因爲從應用程序中完全感覺完全失去了這種錯誤!我現在看到了這個功能,而那個功能沒有。我試圖接受你的答案,但論壇報告我沒有足夠的聲譽.... – Piginhat