Nic*_*ard 0 iphone nsstring nsdata
我缩小了这个错误(崩溃我的应用程序):
-[NSConcreteMutableData release]: message sent to deallocated instance 0x6eaed40
Run Code Online (Sandbox Code Playgroud)
到以下代码:
emailData = [kmlDoc dataUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚为什么会出现这个错误?该行只是将一个非常大的字符串设置为NSData对象.我在dealloc方法中发布了emailData.
这里出了什么问题?
您需要拥有该对象的所有权:
emailData = [[kmlDoc dataUsingEncoding:NSUTF8StringEncoding] retain];
Run Code Online (Sandbox Code Playgroud)
或使用保留/复制属性:
self.emailData = [kmlDoc dataUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
请记住,你明确必须采取所有权返回的对象从包含既不方法new
,alloc
,retain
或copy
在他们的名字,因为他们返回自动释放的情况下.
看到内存管理指南为多.
归档时间: |
|
查看次数: |
2173 次 |
最近记录: |