Swiftに時間トラッキングアプリを作成していますが、アクティビティに費やした時間を削除する際に問題があります。私の削除機能は、2つのビューでtableViewから隠して、コアデータから削除するように見えますが、時間は私の「今日の総時間」機能から削除されません。履歴から削除するためのiOS:Core Dataからオブジェクトを削除すると、テーブルビューで削除されますが、他のアプリでは削除されません
コード:
func tableView(tableView: UITableView, commitEditingStyle editingStyle:
UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
let historyToDelete = fetchController.objectAtIndexPath(indexPath)
let main = MainViewController()
var totalDuration = main.totalduration
let historyDel = fetchController.objectAtIndexPath(indexPath) as! History
totalDuration = totalDuration - Int(historyDel.duration!)
CoreDataHandler.sharedInstance.deleteObject(historyToDelete as! NSManagedObject)
}
}
コードCoreDataHandlerに削除するため:1日の合計時間を計算するための
func deleteObject(object: NSManagedObject) {
backgroundManagedObjectContext.deleteObject(object)
saveContext()
}
機能:
func calculateTotalDurationForToday() -> NSInteger {
var sumOfDuration = 0
for history in todaysActivitiesArray {
sumOfDuration += (history.duration?.integerValue)!
}
return sumOfDuration
}
私はシミュレータを閉じた場合もう一度実行すると、今日の合計時間がオブジェクトを削除するので、閉じるまでトリガする必要はありません アプリ。これを修正する方法に関するアドバイスはありますか?
どうすれば実装できますか?私はtodaysActivitiesArray = CoreDataHandler.sharedInstance.fetchCoreDataForTodayActivities()を作成しようとしましたが、NSFetchedResultsControllerがどこにあるべきか正確にはわかりません – Sammy