gpt4 book ai didi

ios - 按删除按钮时功能不删除数组项

转载 作者:行者123 更新时间:2023-11-30 14:09:31 28 4
gpt4 key购买 nike

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath:    NSIndexPath) {
if editingStyle == .Delete {
allNotes.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)

} else if editingStyle == .Insert {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}

//这是注释类

var allNotes:[Note] = []
var currentNoteIndex:Int = -1
var noteTable:UITableView?

let kAllNotes:String = "notes"

class Note:NSObject {

var date:String
var note:String


override init() {


date = NSDate().description
note = ""


}


func dictionary() -> NSDictionary {
return ["note":note, "date": date]
}


class func savedNotes() {


var aDictionary:[NSDictionary] = []
for var i:Int = 0; i < allNotes.count; i++ {
aDictionary.append(allNotes[i].dictionary())

}


NSUserDefaults.standardUserDefaults().setObject(aDictionary, forKey: kAllNotes)


}

class func loadNotes() {

var defaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var savedData:[NSDictionary]? = defaults.objectForKey(kAllNotes) as? [NSDictionary]
if let data:[NSDictionary] = savedData {
for var i:Int = 0; i < data.count; i++ {

var n:Note = Note()
n.setValuesForKeysWithDictionary(data[i] as [NSObject : AnyObject])
allNotes.append(n)

}

}



}

}

这是函数,但它不会永久删除数组上的项目,而是从 TableView 中临时删除。重新启动模拟器时,表格 View 仍然显示已删除的项目

 override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
allNotes.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
NSUserDefaults.standardUserDefaults().setObject(allNotes, forKey: kAllNotes)
} else if editingStyle == .Insert {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
}
}

当我像这样更新任何尝试删除数组项时,都会显示线程错误

最佳答案

是的,它只会在运行时从您的 allNotes 数组中删除,因为您不会从为 allNotes 数组获取值的内存中删除。

例如,如果您正在从内存中的 plist 文件读取数组,那么您也必须从该 plist 文件中删除该项目。

因此,当您重新启动应用程序时,您的 allNotes 数组将不会从您的 plist 中获取已删除的项目。并且它不会显示您删除的项目。

关于ios - 按删除按钮时功能不删除数组项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31912004/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com