gpt4 book ai didi

ios - 为什么在使用 NSMutableDictionary 时出现 NSConcreteMutableData 错误

转载 作者:行者123 更新时间:2023-11-29 02:54:41 26 4
gpt4 key购买 nike

在我的 appdelegate 中,我设置了几个自定义 NSObject (MemoryObject) 实例并将它们存储到 NSMutableDictionary 中:

- (void)setMObjects{
_radio = [[Memoryobject alloc]initWithName:@"Radio" andDescription:@"string" andImage:nil];
_fridge = [[Memoryobject alloc]initWithName:@"Fridge" andDescription:@"string" andImage:nil];

[_allMObjects setObject:_radio forKey:@"Radio"];
[_allMObjects setObject:_fridge forKey:@"Fridge"];
}

之后,我将它们存储到 NSUserDefaults 中:

[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:_allMObjects] forKey:@"neededMObjects"];

然后,在我的 ViewController 中,我想检索这个 NSMutableDictionary:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
neededMObjects = [[defaults objectForKey:@"neededMObjects"] mutableCopy];
NSLog(@"dict: %@", neededMObjects);
NSLog(@"object: %@", [neededMObjects objectForKey:@"neededMObjects"]);

第二个 NSLog 给我一个错误:-[NSConcreteMutableData objectForKey:]: unrecognized selector sent to instance 0x8c32330

我不明白这个。为什么错误暗示我使用了 NSConcreteMutableData,而我使用的是 NSMutableDictionary,为什么这不起作用?

最佳答案

您正在将归档字典的结果放入 NSUserDefaults。 archivedDataWithRootObject: 的结果是一个 NSData。您需要取消存档才能取回字典。

关于ios - 为什么在使用 NSMutableDictionary 时出现 NSConcreteMutableData 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24063205/

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