gpt4 book ai didi

ios - 从 NSMutableDictionary 中移除对象

转载 作者:行者123 更新时间:2023-11-29 10:44:28 28 4
gpt4 key购买 nike

我有一个名为 tableData 的 NSDictionary,其中包含键 @"A"- @"Z",对于每个键,值都包含一个包含 Patient 对象的数组。

然后我创建一个名为 filteredPatients 的 NSMutableDictionary 并使用 tableData 字典对其进行初始化。

在此示例中,我尝试从键为@"A"的数组中删除所有患者对象

@property (nonatomic, strong) NSDictionary *tableData;
@property (nonatomic, strong) NSMutableDictionary *filteredPatients;

self.filteredPatients = [[NSMutableDictionary alloc]initWithDictionary:self.tableData];

NSMutableArray *patientArray = [self.filteredPatients objectForKey:@"A"];
int count = patientArray.count - 1;

for (int i = count; i >= 0; i--)
{
[patientArray removeObjectAtIndex:i];
}

在这种情况下,使用键@“A”从 filteredPatients 数组中正确删除了患者对象,但问题在于相同的患者对象正在使用键@“A”从 tableData 数组中删除。我的问题是为什么患者对象也从 tableData 字典中删除?我该如何防止这种情况?

我一定是做错了什么,但这让我很困惑,因为如果我尝试简单地从 filteredPatients 中删除键 @"A",它工作得很好,只会从我想要的字典中删除键。

[self.filteredPatients removeObjectForKey:@"A"];

最佳答案

我认为您的问题是您期望深度复制行为,但您没有要求深度复制。字典是不同的对象,但两个字典中任何给定键的值都指向相同的可变数组。您可以改用 initWithDictionary:self.tableData copyItems:YES,但您需要仔细考虑哪些内容会被复制,哪些不会。我没有足够的信息来帮助你。

关于ios - 从 NSMutableDictionary 中移除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22873941/

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