如何修复SBJsonParser实现文件中的内存泄漏?

时间:2012-12-07 14:53:13

标签: objective-c ios json memory-leaks sbjson

在我的应用程序中使用Instruments - > Leaks时,我发现SBJson Parser实现文件中存在最大的内存泄漏:

@implementation SBJsonStreamWriterAccumulator
@synthesize data;
- (id)init {
self = [super init];
if (self) {
    data = [[NSMutableData alloc] initWithCapacity:8096u]; //HERE IS 100% LEAK
}
return self;
}
#pragma mark SBJsonStreamWriterDelegate
- (void)writer:(SBJsonStreamWriter *)writer appendBytes:(const void *)bytes length:              (NSUInteger)length {
[data appendBytes:bytes length:length];
 }
 @end

1.如何正确修复此问题而不是崩溃解析器?

2.使用SBJson时,为什么内存泄漏有这么多麻烦?

2 个答案:

答案 0 :(得分:3)

您可能正在使用SBJson 3.1和不使用ARC的项目 在ARC - 这很好。
如果您的项目是非弧形,请使用SBJson 3.0,这是一个非ARC版本。

答案 1 :(得分:-1)

  1. 阅读SBJson文档https://github.com/stig/json-framework/blob/master/NEWS.md
  2. 因为人们不打扰阅读文档。
  3. 除非使用ARC,否则添加编译指示以使文件不是COMPILE是一个开放的错误。我还没来得及解决它。请参阅:https://github.com/stig/json-framework/issues/151

    (免责声明:我是SBJson的作者。)