iOS Swift:删除索引引用的解析数组项

时间:2015-05-31 11:21:22

标签: ios swift parse-platform

我将数据存储在具有以下列键的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中做到这一点?任何帮助,将不胜感激。 感谢。

2 个答案:

答案 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
        }
    }