讨厌的NSPropertyListSerialization泄漏

时间:2011-01-13 00:51:21

标签: iphone memory-leaks plist

NSString *anError = nil;
 id plist;
 plist = [NSPropertyListSerialization propertyListFromData:rawCourseArray mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&anError];
 if (anError != nil){

  [anError release];
 }

以上代码每次调用时都会导致内存泄漏。我发布错误但仍有泄漏。我没有看到任何解决这个问题的方法。我已经发布了这个,大多数人回答说这不是泄漏。但请参阅泄漏性能工具:

alt text

我需要修复此问题,因为最终我的应用程序崩溃了。有任何想法吗?非常感谢

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。 used propertyListWithData:options:format:error:具有相同的结果。使用NSDictionary initWithContentsOfFile具有相同的结果:

泄露的对象#地址大小负责的图书馆负责框架 NSCFNumber,19<多个> 304字节MediaToolbox FigRemote_CreatePropertyListFromBinaryPListData

FWIW - 我在pList中只有字典,数组和字符串,没有数字。

问题不是错误对象(或方法中的字符串)。问题不在上面,因为它应该是自动释放。最后,我放弃并重新实现了使用JSON和:

http://stig.github.com/json-framework/api/index.html

==>没有更多的泄漏。

最佳, 佛瑞德

答案 1 :(得分:0)

我之前遇到过同样的问题。

基本上这是因为你的error变量在没有启动的情况下被释放了。所以你可以做的是尝试在释放之前将NSString *error初始化为空字符串。或者根本不释放它。