ios - 异常 "mutating method sent to immutable object"

标签 ios objective-c nsarray

我在下面的方法中的 [array removeObjectsInArray:toRemove]; 行中有一个异常,无法理解它有什么问题..

- (void) handleDearchForTerm:(NSString *)searchTerm
{
    NSMutableArray *sectionsToRemove = [[NSMutableArray alloc] init];
    [self resetSearch];
    for (NSString *key in _keys)
    {
        NSMutableArray *array = [_names valueForKey:key];
        NSMutableArray *toRemove = [[NSMutableArray alloc] init];
        for (NSString *name in array)
        {
            if ([name rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location == NSNotFound)
                [toRemove addObject:name];
        }
        if ([array count] == [toRemove count])
            [sectionsToRemove addObject:key];
        [array removeObjectsInArray:toRemove];
    }
    [_keys removeObjectsInArray:sectionsToRemove];
    [_table reloadData];
}

最佳答案

可能数组只是NSArray的实例,而不是NSMutableArray,你应该检查_names setObject:forKeys:

关于ios - 异常 "mutating method sent to immutable object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18848441/

相关文章:

objective-c - JSONModel 返回 nil

iOS itunesconnect 沙箱测试账号(无效年份)

ios - 在 setNeedsLayout 上自动添加 StatusBar Padding

ios - 将 Swift 中的 Azure B2C 与 native 登录屏幕集成

ios - 更改字体后在 UITextField 上调用 sizeToFit 在 iOS 7.1 上无法正常工作

ios - 通过代码禁用 RoundedRect 类型的 UIButton 的用户交互

ios - 从排除字符串中创建数组

ios - 根据键数组过滤NSDictionary

iOS spriteKit 子节点相对于 View 坐标的位置

iphone - 将 UIAppearance 与 UIBarButtonItem 的子类一起使用会导致无法识别的选择器被发送到 UINavigationButton