• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 我需要自己发布添加到 NSDictionary 的 NSNumbers 吗?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 08:48:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在创建一个 NSDictionary,它将对象映射到整数,并且因为 NSDictionaries 除了对象之外不处理任何东西,我必须用 [NSNumber numberWithInt:30] 或你有什么将每个整数包装在一个 NSNumber 对象中。我不清楚的是我是否需要释放我正在创建的所有这些 NSNumber 对象。我实际上并没有为它们分配空间,所以它们必须在自动释放池中,但我可以确定 NSDictionary 对象正确地保留和释放它们吗?假设我正在设置

NSDictionary * myDict = [[NSDictionary alloc] initWithObjectsAndKeys: objectOne, [NSNumber numberWithInt: 30], nil];

当我完成它时,我正在正确地释放 NSDictionary(因为我正在在我自己的代码中为它分配空间)。



Best Answer-推荐答案


不,NSNumber 对象是自动释放的。

将它们添加到 NSDictionary 将导致向您添加的每个 NSNumber 对象发送保留消息。

根据内存管理规则,您不拥有这些对象 - NSDictionary 以某种方式做到这一点 - 因此您不负责释放它们,NSDictionary 对象会这样做。

但是你拥有使用 alloc & initWithObjectsAndKeys: 创建的 NSDictionary。因此,您需要注意管理 myDict 对象的内存。

关于ios - 我需要自己发布添加到 NSDictionary 的 NSNumbers 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046756/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap