iphone - 释放 NSData 导致异常

标签 iphone objective-c cocoa cocoa-touch memory

有人可以解释为什么以下代码会导致我的应用崩溃吗?

NSData *myImage = UIImagePNGRepresentation(imageView.image);
  :
[myImage release];

如果我注释掉“release”行,应用程序会运行...但是几次调用包含此代码的函数时我就崩溃了——我猜是内存泄漏造成的。

即使我注释掉函数中的所有其他内容并只保留这两行,当发布执行时,应用程序也会崩溃。

我敢肯定这一定是新手“你不知道如何正确清理你的烂摊子”之类的东西;-)

干杯,

杰米。

最佳答案

你确定你应该调用 release —— MacOS API 的一般规则是转移所有权的方法有 CopyCreate以他们的名义。我怀疑您得到的是对底层图像表示的引用,而不是副本,在这种情况下,您正在释放其他对象拥有的对象。

关于iphone - 释放 NSData 导致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755871/

相关文章:

ios - ScrollView 类 iOS

iOS - 在横向模式下获取状态栏高度和宽度 0

ios - 如何在共享扩展中呈现 ViewController?

cocoa - NSTask 还是 NSThread?

iphone - 在提交的应用中删除功能

iphone - 带有 DONE 按钮的 UIPickerView

ios - 大文件的 RNCryptor 内存问题

iphone - UIWebView:在 Safari 中打开一些链接,一些在 View 中打开

cocoa - 如何替换 10.8 中已弃用的 FSFileOperationCreate?

iphone - 关闭 UIViewController 并在另一个类中更改 ui