gpt4 book ai didi

ios - NSUserDefaults-插入数组作为对象不起作用

转载 作者:行者123 更新时间:2023-12-01 18:57:36 25 4
gpt4 key购买 nike

这是我的代码:

NSMutableDictionary *newThoughtDict = [[NSMutableDictionary alloc] init];
[newThoughtDict setObject:self.triggerOne.text forKey:@"thought"];
[newThoughtDict setObject:self.date forKey:@"date"];

NSDate *currentDate = [[NSDate alloc] initWithTimeIntervalSince1970:NSTimeIntervalSince1970];
[newThoughtDict setObject:currentDate forKey:@"date"];

NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *arrayData = [currentDefaults objectForKey:@"thoughtArray"];
if (arrayData != nil)
{
NSMutableArray *savedArray = [NSKeyedUnarchiver unarchiveObjectWithData:arrayData];
[savedArray insertObject:newThoughtDict atIndex:0]; //<---error being thrown here
[currentDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:savedArray] forKey:@"thoughtArray"];
[currentDefaults synchronize];

引发的错误是:-[__ NSArrayI insertObject:atIndex:]:无法识别的选择器已发送到实例0x170200150

看来问题出在将字典插入数组中时,但是执行此操作的代码是正确的,所以我想知道如何从NSUserDefaults中检索数组是否存在问题。

另外,当我测试应用程序时,它应该返回“nil”,因为我尚未实际创建NSUserDefault对象和键。

谢谢。

最佳答案

即使设置了可变对象,NSUserDefaults始终返回不可变的对象。如果要更改从默认值返回的内容,必须制作可变的副本。

关于ios - NSUserDefaults-插入数组作为对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25559733/

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