1

在我的应用程序中使用 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时会出现内存泄漏的问题?

4

2 回答 2

3

您可能正在将 SBJson 3.1 用于未使用 ARC 的项目。
在 ARC - 这很好。
如果您的项目是非 arc,请使用非 ARC 版本的 SBJson 3.0。

于 2012-12-07T14:58:23.857 回答
-1
  1. Read the SBJson documentation https://github.com/stig/json-framework/blob/master/NEWS.md
  2. Because people don't bother reading documentation.

There's an open bug to add a pragma to make the files NOT COMPILE unless ARC is used. I just haven't had time to fix it yet. See: https://github.com/stig/json-framework/issues/151

(Disclaimer: I am the SBJson author.)

于 2012-12-12T14:53:27.950 回答