从数组中删除对象

时间:2015-08-11 22:40:36

标签: swift

我创建了两个按钮(添加和编辑):

var addButton = UIBarButtonItem(title: "Add", style: .Plain, target: self, action: "tabBarAddClicked"); self.navigationItem.rightBarButtonItems = [self.editButtonItem(), addButton]

这些也有效,我可以使用函数

删除tableView中的对象
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
   if editingStyle == UITableViewCellEditingStyle.Delete {
        subjects.removeAtIndex(indexPath.row)
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
    }
}

由此:

var subjects: [Subject] = subjectsData

var subjectsData = [ Subject(name: "Investments", semester: 1), Subject(name: "Statistics", semester: 1), Subject(name: "Studium Universale", semester: 2) ] 

但是,当我在导航栏中返回上一个屏幕然后返回到屏幕时,阵列中已删除的对象再次出现。但我告诉它使用subjectsData从数组subjects.removeAtIndex(indexPath.row)中删除对象。

为什么对象会返回,我该如何更改?

1 个答案:

答案 0 :(得分:1)

  

但我告诉它要从数组subjectData中删除对象   subjects.removeAtIndex(indexPath.row)。

你告诉它要删除主题,而不是subjectData。

例如:

var array1 = [1, 2, 3]
var array2 = array1


array2.removeFirst()

print(array1) // [1, 2, 3]
print(array2) // [2, 3]