我可以将对象插入 NSDictionary 吗?

发布于 2024-11-28 19:39:45 字数 224 浏览 1 评论 0原文

我正在从我们的网络服务器中提取坐标列表。我将整个列表存储为 NSDictionary。当我使用数据(纬度、经度、半径、名称)时,我想用 1 个或 2 个以上字段更新数据列表。有没有办法将这两个项目插入到现有的字典中?

我唯一现有的想法是,我必须将数据加载到 NSMutableDictionary 中以允许添加,然后创建新字典并用新的更新数据覆盖现有字典。希望有一种更简单或更干净的方式,而不是贫民区操纵它。提前致谢。

I am pulling in a list of coordinates from our web server. I'm storing the whole list as an NSDictionary. While I am using the data (lat, long, radius, name) I would like to update the list of data with 1 or 2 more fields. Is there a way to insert these 2 items to the existing dictionary?

My only existing thought is that I would have to load the data into an NSMutableDictionary to allow additions and just create the new dictionary and overwrite the existing one with the new updated data. Hoping for a simpler or cleaner way rather than ghetto rigging it. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

煞人兵器 2024-12-05 19:39:45

来自 文档

NSDictionary 类声明对象的编程接口
管理键和值的不可变关联。

所以,NSDictionary 是不可变的——你不能添加它。使用 NSMutableDictionary 并不是不干净的或“贫民区操纵”......这就是 NSMutableDictionary 的全部目的。

From the docs:

The NSDictionary class declares the programmatic interface to objects
that manage immutable associations of keys and values.

So, NSDictionary is immutable--you may not add to it. Using an NSMutableDictionary is not unclean or "ghetto rigging"...this is the whole purpose for an NSMutableDictionary.

国粹 2024-12-05 19:39:45

您的想法是正确的,您必须创建一个 NSMutableDictionary,因为 NSDictionary 无法修改。

NSMutableDictionary *newDoc = [[NSMutableDictionary alloc] initWithDictionary:doc];

如果 NSDictionary 中有任何不可变数组或字典,则可能需要深层副本进行修改。

NSMutableDictionary *newDoc = (NSMutableDictionary *)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, doc, kCFPropertyListMutableContainers);

Your thought is correct, you have to create an NSMutableDictionary, as the NSDictionary can not be modified.

NSMutableDictionary *newDoc = [[NSMutableDictionary alloc] initWithDictionary:doc];

If you have any immutable arrays or dictionaries in the NSDictionary, you might need a deep copy for modifcations.

NSMutableDictionary *newDoc = (NSMutableDictionary *)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, doc, kCFPropertyListMutableContainers);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文