为什么核心数据中的文件仍然存在,尽管我可以在核心数据中成功删除对象
why the file in core data still there although i can delete object successfully in core data
我尝试删除表视图中的行并删除核心数据,如下所示:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
context.deleteObject(sounds[indexPath.row] as NSManagedObject)
sounds.removeAtIndex(indexPath.row)
context.save(nil)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)
}
}
with context = UIApplication.sharedApplication().delegate.managedObjectContext!
声音是我的数组,它将对象存储在核心数据中。
我可以成功删除行和删除核心数据中的文件。我可以检查它,因为在我删除该行后,我再次重新运行我的应用程序并且数据真的被删除并且没有出现在我的表格视图中。但是当我在模拟器中检查我的应用程序的文档文件夹时。我仍然看到带有一些 sqlite 文件的数据。为什么文件还在那个文件夹里?我该如何删除它?
我发现了一个问题,我没有自己删除文件。所以我必须先删除数据文件,然后再删除数据库中的信息:
var baseString : String = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as String
println("baseString: \(baseString)")
var pathComponents = [baseString, sound.url]
var fileManager:NSFileManager = NSFileManager.defaultManager()
var fileURL = NSURL.fileURLWithPathComponents(pathComponents)!
fileManager.removeItemAtURL(NSURL.fileURLWithPathComponents(pathComponents)!, error: nil)
我尝试删除表视图中的行并删除核心数据,如下所示:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
context.deleteObject(sounds[indexPath.row] as NSManagedObject)
sounds.removeAtIndex(indexPath.row)
context.save(nil)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)
}
}
with context = UIApplication.sharedApplication().delegate.managedObjectContext! 声音是我的数组,它将对象存储在核心数据中。
我可以成功删除行和删除核心数据中的文件。我可以检查它,因为在我删除该行后,我再次重新运行我的应用程序并且数据真的被删除并且没有出现在我的表格视图中。但是当我在模拟器中检查我的应用程序的文档文件夹时。我仍然看到带有一些 sqlite 文件的数据。为什么文件还在那个文件夹里?我该如何删除它?
我发现了一个问题,我没有自己删除文件。所以我必须先删除数据文件,然后再删除数据库中的信息:
var baseString : String = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as String
println("baseString: \(baseString)")
var pathComponents = [baseString, sound.url]
var fileManager:NSFileManager = NSFileManager.defaultManager()
var fileURL = NSURL.fileURLWithPathComponents(pathComponents)!
fileManager.removeItemAtURL(NSURL.fileURLWithPathComponents(pathComponents)!, error: nil)