SignalR / malloc错误 - 释放对象的校验和不正确?

时间:2017-03-09 20:29:35

标签: ios objective-c malloc signalr

我注意到我的应用程序中的随机崩溃似乎都与SignalR-ObjC有关。崩溃可能在收到SignalR数据后不久发生,也可能在接收数据几分钟后发生。

错误消息是:

malloc: *** error for object 0x7fbae292ce00: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

断点放在SRChunkBuffer.m文件中的这一行:

[_buffer appendString:[[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding]];

如果我注释掉使用SignalR-ObjC调用服务器端方法订阅组的代码,则不会发生此崩溃:

for (NSString *groupName in combinedArray ){
    [proxy invoke:@"Subscribe" withArgs:@[groupName] completionHandler:nil];
    }

我已确保SignalR-ObjC的所有可可pod /依赖项都是最新的,删除了我的循环以注册组,而是一次一个地手动注册它们,但我仍然随机崩溃。 / p>

我看到提到可能使用@synchronized但不确定如何适应这种情况。

如何阻止此次崩溃?

1 个答案:

答案 0 :(得分:0)

通过将[连接开始]替换为:

解决
[connection start:[[SRLongPollingTransport alloc] init]]

必须导入" SRLongPollingTransport.h"做这项工作......

来源:https://github.com/DyKnow/SignalR-ObjC/issues/243