gpt4 book ai didi

swift - 如何存储指向对象的指针并稍后引用它以从数组中删除项目?

转载 作者:行者123 更新时间:2023-11-28 11:11:29 25 4
gpt4 key购买 nike

我正在遍历一个对象数组,如果它与特定的项目列表匹配,我想删除该项目。在循环完成对数组的迭代之前,我无法删除该项目。所以我想存储一个指向该对象的临时指针,然后在它完成迭代后将其删除。

public func deleteItem(item: NSDictionary) {    
for object in self.objects() {
if object .isEqualToDictionary(item as! [String : String]) {
//Store pointer to matched item
}
}
//Delete matched item
}

我将如何做到这一点?提前致谢。

最佳答案

使用 .enumerate() 的简单 for 循环索引应该可以实现您的目标。

    public func deleteItem(item: NSDictionary) {    

var deletionIndex = 0 //Initialize an index with wider scope.

for object in self.objects().enumerate() { //Add .enumerate()

//Add .element to get the object and .index for the index
if object.element.isEqualToDictionary(item as! [String : String]) {

//Store index to matched item instead of a pointer
deletionIndex = object.index
}
}
//Delete matched item
self.objects().removeAtIndex(deletionIndex)
}

我觉得这实际上应该可以通过过滤操作轻松实现:

  public func deleteItem(item: NSDictionary) {    

self.objects = self.objects.filter{ $0 != item }
}

这当然会删除项目的所有实例,而不仅仅是最后一个已知索引

关于swift - 如何存储指向对象的指针并稍后引用它以从数组中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34754941/

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