ios - 从 NSMutableArray 中删除项目时应用程序崩溃,但仅当满足某些条件时

标签 ios objective-c nsmutablearray sigabrt

我有一个用 Objective-C 编写的应用程序,它需要显示数字的 UITable。数字列表取自 NSMutableArray,其信息取自 .plist 文件。通常,一切都很好。

但是,该应用程序包含以特定方式组织数字的设置。默认设置只是按字母顺序组织它们。下一个组织它们与默认相反。这两个设置没问题。当一个人通过拆分奇数和偶数数字来选择组织表的设置时,就会出现问题。这是拆分它们的代码:

for (int i = 0; i < [tempGeneralSorterArray count]; i++)
{
    NSString *tempHouseNumber = [[tempGeneralSorterArray objectAtIndex:i] stringByTrimmingCharactersInSet:letters];
    int tempHouseNumberValue = [tempHouseNumber intValue];

    if (tempHouseNumberValue % 2 == 0) //% is the modulo operator, shows what's left after a division
    {
        //even
        [tempEvenSorterArray addObject:[tempGeneralSorterArray objectAtIndex:i]];
        [tempEvenSorterArray sortUsingSelector:@selector(compare:)];
    }
    else
    {
        //odd
        [tempOddSorterArray addObject:[tempGeneralSorterArray objectAtIndex:i]];
        [tempOddSorterArray sortUsingSelector:@selector(compare:)];
    }
}

在此之后,应用程序根据所选设置以不同方式组合两个数组(tempOddSorterArray 和 tempEvenSorterArray),但通常如下所示:

customerArray = [tempOddSorterArray arrayByAddingObjectsFromArray:tempEvenSorterArray];

表格显示大部分都很好,但是当我尝试删除一个单元格时,出现错误。它在这一行崩溃:

[customerArray removeObjectAtIndex:indexPath.row];

我在调试器中得到了这个:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance 0x7fae62410f30'

如有任何帮助,我们将不胜感激,如果需要,我很乐意提供更多信息或代码。

此外,这里使用的所有数组都是 NSMutableArrays。

最佳答案

虽然 customerArray 已声明为可变数组,但 [tempOddSorterArray arrayByAddingObjectsFromArray:tempEvenSorterArray] 返回一个不可变数组。尝试修改它,如 [[tempOddSorterArray arrayByAddingObjectsFromArray:tempEvenSorterArray]mutableCopy];让我知道它是否有效。 :)

关于ios - 从 NSMutableArray 中删除项目时应用程序崩溃,但仅当满足某些条件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38681122/

相关文章:

ios - NSRangeException 索引 9 超出范围 [0 .. 8]'

ios - 使用 Swift 从库中获取所选视频的当前时间

ios - 将 UIImage 添加到 CCSprite?

ios - Segue 在故事中表演

ios - NEHotspotHelper 注释未出现

ios - 从数组中获取内容并在 UILabel 中显示

ios - 如何在 Objective-c 上的 .plist 文件中显示同一键的多个参数?

ios - Objective-C 在运行时调用类私有(private)的类方法

objective-c - 将 Objective-C 代码转换为 Swift

objective-c - 在 NSMutableArray 中使用 plist 时出错