gpt4 book ai didi

ios - 将数组中的特定对象保存到新数组中

转载 作者:行者123 更新时间:2023-11-28 13:14:06 24 4
gpt4 key购买 nike

我有一个名为 teamArray 的数组,其中包含一个带有 ID、名称和短名称的 teamObject。这些名称循环并填充到 tableView 中。所有这些单元格都可以被选中,当一个单元格被选中时,indexPath 被插入到一个 cellSelected 数组中。我想将 teamArray 中选定的单元格 ID 保存到一个新数组中。所以我想我需要将 cellSelected 数组 indexPath 与 teamArray 进行比较?我该怎么做?

数组

var teamArray = Array<Team>()
var cellSelected = NSMutableArray()

didSelectRowAtIndexPath

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)

if (self.cellSelected.containsObject(indexPath)) {
self.cellSelected.removeObject(indexPath)
} else {
self.cellSelected.addObject(indexPath)


}

tableView.reloadData()
}

团队对象

class Team: NSObject{
var id: Int!
var name: NSString!
var shortname: NSString!

init(id: Int, name:NSString, shortname: NSString) {
self.id = id
self.name = name
self.shortname = shortname
}
}

最佳答案

var teamSelected = [团队]()

在您的 didSelectRowAtIndexPath 函数中:

let team = self.teamArray[indexPath.row] as Team
var removed = false

for (index, value) in enumerate(self.teamSelected) {
if (value == team) {
self.teamSelected.removeAtIndex(index)
removed = true
}
}

if (!removed) {
self.teamSelected.append(team)
}

在您的 cellForRowAtIndexPath 函数中:

let team = self.teamArray[indexPath.row] as Team
var removed = false

for (index, value) in enumerate(self.teamSelected) {
if (value == team) {
cell.accessoryView = cell.accessoryCheck
removed = true
}
}

if (!removed) {
cell.accessoryView = cell.accessoryUncheck
}

当您想要访问所选 Team 的 ID 时,您可以循环遍历 teamSelected

编辑:将 cellSelected 的名称更改为 teamSelected

关于ios - 将数组中的特定对象保存到新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29964542/

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