gpt4 book ai didi

objective-c - 枚举中的复制和自动释放

转载 作者:行者123 更新时间:2023-12-03 17:41:29 25 4
gpt4 key购买 nike

我试图在枚举时更改数组的内容。为了避免警告,“数组在枚举时发生了变化”,我复制了数组并像这样完成了自动释放-

int iKeyArrayCount=0;
for(NSString *keyEntity in [[keyArray copy]autorelease])
{
[keyArray replaceObjectAtIndex:iKeyArrayCount withObject:[keyEntity stringByReplacingOccurrencesOfString:@"\"" withString:kMPVTBlankString]];
[keyArray replaceObjectAtIndex:iKeyArrayCount withObject:[keyEntity stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
iKeyArrayCount++;
}

我的困惑在于 keyArray 副本的枚举。虽然枚举是这样的,但每次执行 for 循环时都会形成 keyArray 的副本?或者在整个枚举过程中只形成该 keyArray 的一份副本。

最佳答案

在该代码片段中,[[keyArray copy] autorelease] 仅执行一次,结果用于正在迭代的对象。

换句话说,“在整个枚举过程中只形成了该 keyArray 的一份副本”是正确的。

关于objective-c - 枚举中的复制和自动释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293930/

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