Я извлекаю некоторые данные из plist в UITableview. Я пытаюсь удалить выбранные данные, однако, когда я пытаюсь перезагрузить данные, чтобы показать только оставшиеся ячейки, приложение сработает. Я думаю, проблема в том, что я использую tableview.reloadData()
, но я не уверен, как исправить эту проблему. Если я не использую reloadData, ячейка будет удалена при повторном открытии контроллера вида.Swift - tableview.reloadData() отключает приложение
Любой совет?
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
let row = indexPath.row
let plistPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) as NSArray
let DocumentsDirectory = plistPath[0] as! String
let path = DocumentsDirectory.stringByAppendingPathComponent("notes.plist")
let fileManager = NSFileManager.defaultManager()
if (!fileManager.fileExistsAtPath(path)) {
if let bundlePath = NSBundle.mainBundle().pathForResource("notes", ofType: "plist") {
let resultDictionary = NSMutableDictionary(contentsOfFile: bundlePath)
println("Bundle notes.plist file is --> \(resultDictionary?.description)")
fileManager.copyItemAtPath(bundlePath, toPath: path, error: nil)
println("copy")
} else {
println("notes.plist not found")
}
} else {
println("note.plist already exists")
//fileManager.removeItemAtPath(path, error: nil)
}
let resultDictionary = NSMutableDictionary(contentsOfFile: path)
//resultDictionary?.removeAllObjects()
resultDictionary?.removeObjectForKey(allKeys[row])
resultDictionary!.writeToFile(path, atomically: false)
println("Loaded notes.plist file is --> \(resultDictionary?.description)")
tableView.reloadData()
}
}
Предоставить подробную информацию о катастрофе. – rmaddy
Ошибка приложения: «Неустранимая ошибка: неожиданно найден нуль при развертывании необязательного значения (lldb) ' – SNos
На какой строке произошла эта ошибка? – rmaddy