【问题标题】:iPhone Development Memory WarningsiPhone 开发内存警告
【发布时间】:2011-06-19 15:33:30
【问题描述】:

我知道这里的人可以帮助我解决我的应用程序上的内存警告问题。我将多个对象添加到我的 Nib 文件中,将它们连接到多个 IBOutlets 并在我的 viewDidUnload 和 dealloc 方法上释放这些出口,我还将它们设置为 nil,但在“收到内存警告 = 1 级”错误后它仍然继续崩溃信息。我将 NWPickerField 用于 Nib 文件中的对象。

http://cocoacontrols.com/platforms/ios/controls/nwpickerfield

我只是希望这里的任何人都尝试过使用这个 :) 谢谢和干杯!

【问题讨论】:

    标签: iphone cocoa-touch ipad memory memory-leaks


    【解决方案1】:

    如果你在收到内存警告时崩溃了,这通常意味着某些东西被释放,但它的指针没有设置为 nil,你尝试访问它,然后崩溃!

    这样的错误很难追踪。几种类型: 您可以使用 XCode 工具(使用 XCode 4 中的 Build&Profile) - 特别是 Zombies 工具,它“将死对象保留在周围(作为 Zombies)”,但让您知道它们何时被访问。 另一个有用的是观察点。模拟器运行后,右键单击控制台中的变量,然后说“观看此地址”。然后,任何导致该内存位置更改的代码行都会在发生时导致断点。 另一件要尝试的事情是运行所有的 ivars、init 和 dealloc,并确保你确实得到了每个案例。

    【讨论】:

      【解决方案2】:

      正如你在问题中提到的那样。

      我也将它们设置为 nil,

      进行适当的内存清理。首先调用release 函数或delete 运算符,然后用nil 分配对象。

      【讨论】:

      • “我……在我的 viewDidUnload 和 dealloc 方法上释放这些出口,我也将它们设置为 nil,”
      • @Peter Hosey : 没能带你到这里?
      • 提问者已经在释放对象了。 (您是否怀疑他们在发送release 消息之前分配了nil?如果是这样,那么您的回答中并不清楚。)
      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多