gpt4 book ai didi

cocoa - 如何更新 NSMutableDictionary。我的代码不起作用

转载 作者:行者123 更新时间:2023-12-03 17:44:54 24 4
gpt4 key购买 nike

我已经使用填充了一个数组。

arrSettings = [[NSMutableArray alloc] initWithContentsOfFile:[self settingsPath]];

该文件是一个 plist,其根为数组,然后是一个字典,其中三个键定义为数字。我还尝试过将键设置为字符串。

我使用 View 在 View 上显示 plist 文件中的值。

diaper = [[arrSettings objectAtIndex:0] objectForKey:@"Diaper Expenses"];
oil = [[arrSettings objectAtIndex:0] objectForKey:@"Oil Used"];
tree = [[arrSettings objectAtIndex:0] objectForKey:@"Wood Used"];

这段代码工作正常,字典中的值被分配给变量并显示出来。用户可以进行更改,然后按保存按钮。

我使用此代码来提取数组的字典部分,以便我可以更新它。对 editDictionary 的赋值有效。我已经仔细检查了键名(包括大小写),这是正确的。

editDictionary = [[NSMutableDictionary alloc] init];
editDictionary = [arrSettings objectAtIndex:0];
NSNumber *myNumber = [NSNumber numberWithFloat:diaperAmount];
[editDictionary setValue:myNumber forKey:@"Diaper Expenses"];
myNumber = [NSNumber numberWithFloat:oilAmount];
[editDictionary setValue:myNumber forKey:@"Oil Used"];
myNumber = [NSNumber numberWithFloat:treeAmount];
[editDictionary setValue:myNumber forKey:@"Wood Used"];

在此示例中,我使用了 nsnumber。但我也尝试过将 xxxAmount 字段作为 SetValue 的一部分而不是创建 NSNumber。这两种实现都不起作用。

发生了一些奇怪的事情。有时,前两个 setvalue 语句有效,但最后一个 setvalue 会失败并出现 EXC_BAD_ACCESS 故障。其他时候,第一个 setValue 会失败并出现相同的错误。我不知道为什么前两个有时会起作用。

我不知道下一步该做什么。我已经尝试了几种实现,但没有一个起作用。另外,在调试器中如何显示 editDictionary 元素。我可以看到 editDictionary,但我不知道如何显示各个元素。

最佳答案

您有 2 个 editDictionary 分配,第二个分配消除了第一个分配。也许您的意思是 editDictionary = [[arrSettings objectAtIndex:0] mutableCopy]

关于cocoa - 如何更新 NSMutableDictionary。我的代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2937675/

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