gpt4 book ai didi

iphone - 快速枚举中的突变?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:43 24 4
gpt4 key购买 nike

实际上我收到了一个奇怪的异常:我迭代了一个 MutableDictionary 并想在其中设置一个新值:

    selectionIndex = [NSMutableDictionary dictionaryWithDictionary:selection];
NSString *whatever = @"999999";
id keys;
NSEnumerator *keyEnum = [selectionIndex keyEnumerator];

while (keys = [keyEnum nextObject])
{
[selectionIndex setObject:whatever forKey:keys];
}

顺便说一句,选择,传递给这个方法的是一个 MutableDictionary。如果我运行这段代码,我会收到以下异常:

2011-12-05 15:28:05.993 lovelini[1333:207] * Terminating app due to uncaught exception 'NSGenericException', reason: '* Collection <__NSCFDictionary: 0x6a33ed0> was mutated while being enumerated.{type = mutable dict, count = 8, entries => 0 : {contents =

好吧,我知道我无法更改 NSDictionary,但据我所知,我没有!那么为什么我会得到这个异常呢?这是快速枚举的限制吗???据我所知,无法在快速枚举中添加或删除条目,但我没有添加或删除任何内容?!

最佳答案

您不能在枚举集合时对其进行任何更改。您可以枚举字典的键而不是字典本身:

for (NSString *key in selectionIndex.allKeys) {
[selectionIndex setObject:whatever forKey:key];
}

关于iphone - 快速枚举中的突变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387066/

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