gpt4 book ai didi

ios - "Attempt to set a non-property list object...."带有自定义类的 NSMutableDictionary

转载 作者:可可西里 更新时间:2023-11-01 06:18:27 26 4
gpt4 key购买 nike

<分区>

我有一个名为 ServerModule 的自定义类,它是 NSObject 的子类。我基本上将所有这些 ServerModule 和键值对存储在 NSMutableDictionary 中。然后字典存储在 NSUserDefaults 中。我了解到 NSUserDefaults 仅在访问对象时返回对象的不可变版本,因此我将字典初始化更改为:

_AllModules = [[NSMutableDictionary alloc]initWithDictionary:[_editServerModules objectForKey:@"AllModules"]]; //initialize a copy of AllModules dictionary

现在,我只是想在这个字典中存储一个自定义的 ServerModule 对象,并同步它。以下代码尝试执行此操作:

//Create new ServerModule
ServerModule* newServer = [[ServerModule alloc]initWithUUID];
newServer.name = self.tf_name.text;
newServer.ip = self.tf_ip.text;
newServer.port = self.tf_port.text;
newServer.username = self.tf_user.text;
newServer.password = self.tf_pass.text;
//Add the ServerModule to AllModules dictionary with the key of its identifier
[_AllModules setObject:newServer forKey:newServer.identifier];
[self updateData];
[_editServerModules synchronize];

标识符是在ServerModule 的构造函数中设置的字符串。这是 updateData 的代码。

[_editServerModules setObject:_AllModules forKey:@"AllModules"];

如果您想知道,@"AllModules" 中的对象在 AppDelegate 中初始化如下:

NSMutableDictionary* AllModules = [[NSMutableDictionary alloc]init];

再一次,这是我在尝试保存某些内容时遇到的错误:

Attempt to set a non-property-list object {
"42E9EEA0-9051-4E2A-81EA-DC8FC5639C26" = "<ServerModule: 0x8ac4e50>";
} as an NSUserDefaults value for key AllModules

感谢您的帮助!

~地毯嘶嘶声

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