有人可以解释为什么以下代码会导致我的应用崩溃吗?
NSData *myImage = UIImagePNGRepresentation(imageView.image);
:
[myImage release];
如果我注释掉“release”行,应用程序会运行...但是几次调用包含此代码的函数时我就崩溃了——我猜是内存泄漏造成的。
即使我注释掉函数中的所有其他内容并只保留这两行,当发布执行时,应用程序也会崩溃。
我敢肯定这一定是新手“你不知道如何正确清理你的烂摊子”之类的东西;-)
干杯,
杰米。
最佳答案
你确定你应该调用 release
—— MacOS API 的一般规则是转移所有权的方法有 Copy
或 Create
以他们的名义。我怀疑您得到的是对底层图像表示的引用,而不是副本,在这种情况下,您正在释放其他对象拥有的对象。
关于iphone - 释放 NSData 导致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755871/