[[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别?

2024-05-14

仍在学习 Objective-C / iPhone SDK 。我想我知道为什么这不起作用,但我只是想确认一下。

In awakeFromNib,如果我使用[[NSMutableDictionary alloc] initWithObjects:...]它实际上用这个分配(iPhone)系统内存NSMutableDictionary数据,但是当我使用[NSMutableDictionary dictionaryWithObjects:...]它只能在堆栈中使用,对吗?

例如,将来如果我尝试访问myMutableDict通过 IBAction 按下按钮,myMutableDict对象可能已被释放,导致我的应用程序崩溃,即使我在 .h 文件中像这样定义了它并合成了它:

@property (nonatomic, retain) NSMutableDictionary *myMutableDict;

由于某种原因更改为[[NSMutableDictionary alloc] initWithObjects:...]解决了这个问题。


+dictionaryWithObjects:返回一个自动释放的字典
-initWithObjects:你必须释放自己

如果您希望字典作为实例变量持久存在,您应该使用 init 方法创建它或保留自动释放版本,无论哪种方式,您都应该确保在 dealloc 方法中释放它

关于这个主题的一个很好的资源是Cocoa 内存管理编程指南 http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别? 的相关文章

  • 管理 iOS 中的布局

    我是新来的iOS开发方面 我对 JAVA Swing 和 Windows 应用程序有扎实的背景 我想学习如何进行布局iOS 我猜iOS没有 布局管理器 就像 Java Swing 中的那样 发展的唯一出路UI是否指定每个控制器的尺寸和位置
  • iPhone 应用程序中的 Vimeo 视频

    我想知道是否有办法将 Vimeo 视频 嵌入 iPhone 应用程序中 对于 YouTube 视频 我使用包含 YouTube 视频正确嵌入代码的 Web 视图 然后 iPhone 的本机 YouTube 支持会将 Flash 播放器转换为
  • 在 wkwebview 中启用摄像头和麦克风访问

    我有一个针对移动设备优化的网络应用程序 它利用getUserMedia访问网络摄像头和麦克风资源 我正在将这个应用程序包装在WKWebView因为我想提供原生应用程序体验 我知道 iOS 不允许通过浏览器访问相机 但是有什么方法可以使用本机
  • UIPopViewController 不工作

    我有一个 xib 文件 其中有 h 和 m 链接 在 xib 中有一个带有 textView 的 UIView 我想要对该视图执行的操作是 当您单击按钮时将其作为 UIPopViewController 打开 这是我的代码 IBAction
  • 如何使用 UIScrollView?

    我该如何使用UIScrollView 请给我一个带有一张滚动图像的简单示例 这将使您深入了解UIScrollView控制 学习 UIScrollView 的基础知识 https stackoverflow com questions 159
  • 不确定如何在使用故事板时正确子类化 UIApplication

    我想在 X 次用户不活动 没有触发触摸事件 后返回故事板的初始视图控制器 经过一些研究 我发现检测不活动的最常见方法是触发 NSTimer 并在事件触发时重置间隔 为了检测触发的事件 我们在 UIApplication 的子类中重写 UIA
  • 如何从 iOS 本机共享功能中删除某些选项? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一款 iOS 游戏 想知道如何删除 iOS 在自动共享时提供的一些本机选项 例如 分配给联系人 和 打印 我对此做了很多研究 我
  • 如果没有解析器生成器,如何用 C 或 Objective-C 编写解析器?

    我正在尝试用 C 或 Objective C 制作一个计算器 它接受以下字符串 8 2 4 3 9 2 并返回答案 2920 我不想使用像 Lex 或 Yacc 这样的生成器 所以我想从头开始编码 我该怎么做呢 除了 龙 这本书之外 还有其
  • 使用 AVVideoCompositionCoreAnimationTool 在 CALayer 中将视频与静态图像混合

    我正在尝试将来自相机的视频与静态图像 水印 混合 我已经检查了这里的问题 答案和一些示例 包括来自 Apple 的 WWDC AVEditDemo 并以以下代码结束 不幸的是 导出的视频不包含带有图像的图层 有任何想法吗 void imag
  • 如何在iPhone sdk静音模式下播放声音文件?

    如何在iPhone sdk静音模式下播放声音文件 我正在尝试以静音模式播放声音文件 但结果为零 我试过这段代码 SystemSoundID soundID AudioServicesCreateSystemSoundID CFURLRef
  • iPhone – 类似 Photoshop 的效果

    我可以在 iPhone 中制作乘法 屏幕 颜色或其他类似 Photoshop 的效果吗 Check 石英演示 http developer apple com iphone library samplecode QuartzDemo ind
  • 同一视图中的多个 UIAlertView

    我有两个带有确定 取消按钮的 UIAlertView 我通过以下方式捕获用户响应 void alertView UIAlertView alertView didDismissWithButtonIndex NSInteger button
  • Objective-c:如何检测视图上的双击?

    我正在开发一个应用程序 其中视图上有多个控件 但我想在用户双击视图时启用它们 您可以以双击为例 但在设备中我想在双击时捕获事件 您需要添加一个UITapGestureRecognizer到您想要点击的视图 像这样 void viewDidL
  • UITextField 验证视觉反馈

    我有一个 uiTextField 我正在验证输入 当我输入无效时 有哪些适当的方法可以显示输入无效 是否有任何内置机制可以显示无效的输入状态 将 警告 图像添加到 UITextField 的左侧以指示该字段需要一个值非常容易 尝试这个 UI
  • 何时使用 takeUnretainedValue() 或 takeRetainedValue() 来检索 Swift 中的非托管对象?

    根据将 Swift 与 Cocoa 和 Objective C 结合使用 https developer apple com library prerelease ios documentation Swift Conceptual Bui
  • “UITableViewCell 附件复选标记”是图像吗?

    我需要定义一个自定义UITableViewCell哪里的UITableViewCellAccessoryCheckmark位于 a 的左侧UILabel 我应该将其定义为图像还是有更聪明的方法 非常感谢 卡洛斯 这只是一个关于苹果文档 ht
  • Objective C - 后台执行选择器并且分离新线程选择器?

    detachNewThreadSelector 和performSelectorInBackground 都用于在后台调用方法 2种方法有什么区别吗 或者它们的工作方式相同吗 它们本质上是相同的 但范式略有不同 他们在幕后做着完全相同的事情
  • 在 Objective C 中读取解析 XML 的 CDATA 部分

    我正在研究一个关于解析 google 天气 api 的 iphone 示例教程 该 api 似乎不再存在 所以我找到了一个替代方案 本教程使用 libxml2 和 xpath 查询来解析 xml 文件 我成功解析了大部分数据 我遇到的问题是
  • iPhone 应用程序在 iPhone 4 尺寸下运行,更新后出现黑条

    此前 该应用程序支持 iPhone 5s SE 屏幕和 iPhone 6 8 屏幕 不包括加大尺寸 这是使用启动图像完成的 因此 在 Plus 尺寸设备和 iPhone X 设备上 它会在应用程序上方和下方显示黑条 然后我们发布了一个更新
  • iOS:如何实现像Android的startActivityForResult这样的行为

    我是一名 Android 开发人员 正在开发我们应用程序的 iOS 版本 我需要知道如何在 Android 上实现类似于 startActivityForResult 的行为 我需要显示一个新的视图控制器 然后在新的视图控制器关闭时将控制权

随机推荐

  • 如何禁用docker容器的root访问权限?

    我们有离岸开发人员 他们希望在本地运行我们的服务器 但出于安全原因 我们不想向他们提供服务器代码 所以一个解决方案是他们运行一个 Docker 容器 这是我们服务器的独立版本 所以他们这边没有复杂的设置 问题在于 始终可以以 root 身份
  • Git 不断提示我输入密码

    我已经使用 Git 一段时间了 但是不断要求输入密码开始让我感到厌烦 我使用的是 Mac OS X 和 GitHub 并且按照 GitHub 的说明设置了 Git 和我的 SSH 密钥设置 Git 页面 http help github c
  • 为什么 *(int*)0=0 不会导致访问冲突?

    出于教育目的 我正在编写一组导致 C 中运行时异常的方法 以了解所有异常是什么以及导致它们的原因 现在 我正在修改程序 导致AccessViolationException 对我来说 最明显的方法是写入受保护的内存位置 如下所示 Syste
  • 使用 Windows 命令行连接文本文件,删除前导行

    我需要连接一些相对较大的文本文件 并且更喜欢通过命令行来完成此操作 不幸的是我只有Windows 无法安装新软件 type file1 txt file2 txt gt out txt 允许我几乎得到我想要的 但我不希望 file2 txt
  • 在 Visual Studio 2013 中更改 TFS 源代码管理映射

    我有多个先前映射到托管 TFS 的解决方案 他们的本地映射也已定义 并且所有源代码都是本地最新的 此后我停止了 TFS 订阅并开始使用 Visualstudio com 作为我的 TFS 服务器 我进入其中一个解决方案 从解决方案中删除 v
  • Django 1.7 应用程序配置导入错误:没有名为 appname.apps 的模块

    我正在尝试按照以下文档为我的一个名为 文章 的 Django 应用程序设置自定义应用程序配置https docs djangoproject com en dev ref applications https docs djangoproj
  • 如何在android中的谷歌地图上聚焦标记

    我只是想知道我们是否可以关注 Android 应用程序中添加的标记 如果是 怎么办 或者有没有其他方法可以完成这项任务 可以说我使用下面的代码添加了一个标记 map addMarker new MarkerOptions title tit
  • StackExchange.Redis Get 函数抛出 TimeoutException

    我在用着StackExchange Redis与 C 和StackExchangeRedisCacheClient Get函数抛出以下异常 myCacheClient Database StringGet txtKey Text myCac
  • ServiceStack自定义用户身份验证

    有谁有一个关于如何按照本建议使用 int RefId 的实际示例question https stackoverflow com questions 11117469 how can i extend servicestack authen
  • 如何在 60 分钟后删除共享首选项

    我想存储登录数据 但希望在 60 分钟后删除该数据 执行此操作的正确方法是什么 在这 60 分钟内可以关闭 停止 打开应用程序 我不想使用内部数据库 这是我的访问代码SharedPreferences sharedpreferences g
  • 模拟器无法加载

    我正在使用 hello android 教程并通过 eclipse 创建 avd 启动模拟器时不使用图像 它只是显示一个黑色的后屏 中间有 ANDROID 字样 并且在 ANDROID 字样的末尾有一个闪烁的光标 我已按照 T 的步骤安装
  • Flutter:如何移动文本字段字符计数器?

    标题很好地总结了这个问题 我有一个TextField with a maxLength 250这就是它的样子 有没有办法把柜台放在其他地方 最好位于发送按钮的左侧 但也可能位于发送按钮的上方和左侧TextField 有任何想法吗 谢谢 可能
  • SAS合并多个表

    我想知道合并多个表的最佳方法是什么 我在所有表中都有唯一的标识符 我应该在对表进行排序后一步加入所有表 还是应该逐步进行一一表合并 这有关系吗 您可以一步进行多次合并 然而 这并不是最安全的方法 如果您的数据可能存在缺陷 最好逐步执行此操作
  • Drupal 6 无法构建菜单路由器和链接

    当我在 Drupal 中启用新菜单 例如 mymodule 时 Drupal 应该能够从 mymodule menu hook menu 获取菜单项 处理这些菜单项并将菜单项插入到 menu router 和 menu links 表中 然
  • 具有键唯一性和按位置排序的 MFC 字典集合

    看着表上http msdn microsoft com en us library y1z022s1 28v vs 80 29 aspx core collection shape features http msdn microsoft
  • 如何在python 3.6.5中通过变量创建子元素

    我的代码是 import xml etree ElementTree as ET from lxml import etree var1
  • 目录 * 和文件顺序

    我需要将目录中的所有文件连接到一个文件 但具有指定名称的文件必须位于输出的顶部 只是在做cat gt result将按字母顺序连接所有文件 有什么办法告诉猫放置文件vars css或任何其他输出的开头 现在我只是重命名文件需要首先000 f
  • 使用 numpy.argsort 的输出就地排序

    我有两个数组 A 和 B 我想根据 A 对 A 和 B 进行排序 所以我这样做 sort order numpy argsort A A A sort order B B sort order 问题是 A 和 B 都非常非常大 因此上述情况
  • Android:WebView/BaseInputConnection 中的退格键

    我在 Android 4 2 中遇到软键盘退格问题 我在 WebView CodeMirror 中有一个自定义编辑器 它使用一个空的
  • [[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别?

    仍在学习 Objective C iPhone SDK 我想我知道为什么这不起作用 但我只是想确认一下 In awakeFromNib 如果我使用 NSMutableDictionary alloc initWithObjects 它实际上