【问题标题】:Potential memory leak - Received Memory Warning潜在的内存泄漏 - 收到内存警告
【发布时间】:2014-01-28 11:36:59
【问题描述】:

我正在使用 iOS 7,并且在这部分代码中收到内存警告,但我无法理解在我发布 imageToSave 变量时保留计数如何增加。

【问题讨论】:

  • 这不是一个完整的答案,但你为什么不使用 ARC?
  • 我第二个@StefanFisk。我想知道为什么人们仍然坚持手动内存管理。
  • @Isuru 因为它让您可以更好地控制 ARC,并且比 ARC 更好地管理内存
  • 我从未见过非 ARC 代码的性能优于 ARC 代码的示例。 Apple 还多次声明 ARC 代码将通过编译器优化其保留/释放调用,以便完全删除不必要的调用。
  • @kshitijgodara,这只是方法返回的对象的命名约定,以copycreatenewint 开头,应该被释放。在其他情况下,对象已经自动释放。按照这个约定并查看您的代码,您不需要发布 imageToSave。

标签: ios iphone objective-c memory-leaks


【解决方案1】:

静态分析器并不总是写内存泄漏,但它假设当您调用 finalOutput 时它返回一个分配的对象意味着 +1 保留计数对象从未使用过,并将此警告视为内存泄漏!

【讨论】:

  • 那么我该如何停止这个警告,我没有使用最终输出吗?
  • 只需从您的代码中删除 [imageToSave release],因为您还没有分配它!
【解决方案2】:

你自己没有为这个对象分配内存,所以你不拥有它。而你仍在释放它。你不能释放你不拥有的对象。 除非你使用alloc方法来分配内存,否则你不能随便释放它们............

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多