【问题标题】:How to delete an object from array in iphone [closed]如何从iphone中的数组中删除对象[关闭]
【发布时间】:2013-03-22 12:37:17
【问题描述】:

我正在尝试从数组中删除一个对象,当我的表视图获取reload 时,从表视图中显示的数组中删除了对象,我正在使用– removeObjectAtIndex: 从数组中删除对象。 请帮我从数组中永久删除对象。提前致谢。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{

    if (editingStyle == UITableViewCellEditingStyleDelete) 
    {

      [myArray removeObjectAtIndex:indexPath.row];

      [tableView reloadData];

    }

}

【问题讨论】:

  • 您是在从数组中删除对象之前还是之后重新加载表视图?
  • removeObjectAtIndex 应该可以工作。您确定要发送正确的索引吗?数组中的第一项是 C 中的索引 0,这与某些语言不同。
  • 这里的问题是您没有删除对象,或者它没有正确显示。您需要重新加载 tableview 或通知它您正在删除对象,以便它与您的显示同步。
  • Y 这是被否决了吗?对我来说,这似乎是一个非常好的问题。他的代码会很好,但问题只是在 8 分钟前发布,请给他一分钟时间回复 ffs。
  • @GeneralMike 完全同意。

标签: ios objective-c cocoa-touch uitableview nsmutablearray


【解决方案1】:

NSMutableArray 移除对象的方法:

– removeAllObjects
– removeLastObject
– removeObject:
– removeObject:inRange:
– removeObjectAtIndex:
– removeObjectsAtIndexes:
– removeObjectIdenticalTo:
– removeObjectIdenticalTo:inRange:
– removeObjectsFromIndices:numIndices:
– removeObjectsInArray:
– removeObjectsInRange:

见:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsmutablearray_Class/Reference/Reference.html

并确保在从数组中删除对象后重新加载表。并将适当的计数发送给 tableview 委托。

【讨论】:

    【解决方案2】:

    取一个 NSMutableArray,然后在 tableview 行数被选中删除对象。然后重新加载 tableview 以应用更改。

    例如....

    [yourArray removeObjectAtIndex:indexPath.row];
    [tableView reloadData];
    

    确保您重新加载 tableview,并使用 NSMutableArray 而不是 NSArray

    【讨论】:

      【解决方案3】:

      我认为你从临时数组中删除了对象,所以它不会从主数组中删除。所以当你重新加载或查看将出现时,它正在复制..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-25
        • 1970-01-01
        • 2023-01-16
        • 2019-07-13
        • 2017-06-15
        • 1970-01-01
        相关资源
        最近更新 更多