我将数据存储在具有以下列键的parse列中
电话= [" iPhone"," Galaxy S6"," Nexus"]
数量= [20,30,20]
boolV = [[true,false],[true,false],[false,true]]
我以tableView格式向用户呈现此日期,并希望为他提供删除这些项目的选项。
目前我正在关注此事: 在tableView中的commitEditingStyle函数
// find the index value of user selected cell
var indexValue = find(phone, "iPhone") // 0
// Using this, I can delete the array elements from phone like this
quantity.removeAtIndex(indexValue!)
boolV.removeAtIndex(indexValue!)
要使用以下内容从解析I中删除:
object.removeObject("iPhone", forKey: "phone") // This works fine
object.removeObject("self.quantity[indexValue]", forKey: "quantity") // But this deletes both "20" quantity from the table
object.removeObject("self.boolV[indexValue]", forKey: "boolV") // again it deleted both "[true, false]" values form the array.
我确信我在这里遗漏了一些东西。我只想删除indexValue指向的数组项。我怎么能在Parse中做到这一点?任何帮助,将不胜感激。 感谢。
答案 0 :(得分:0)
这看起来似乎应该使用具有2个类和关系的不同数据模型,而不是1个类和一组数组属性。然后,要执行删除操作,请从关系中删除项目并将其从数据存储中删除。
当您无法从阵列中删除单个项目时,您需要获取阵列,编辑它然后存储全新的更新阵列。
答案 1 :(得分:0)
你应该在后台删除这样的:对象是你的tableView连接数组
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// Delete the row from the data source
let objectToDelete = objects?[indexPath.row] as! PFObject
objectToDelete.deleteInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if (success) {
// Force a reload of the table - fetching fresh data from Parse platform
self.loadObjects()
} else {
// There was a problem, check error.description
}
}
} 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
}
}