我一直在注意到我的应用程序中的随机崩溃似乎与signalr-objc有关。崩溃可以在接收信号数据后不久或接收到数据后不久发生。
。错误消息是:
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/依赖关系是最新的,删除了我的循环以注册组,而是一次手动注册它们,但我仍然随机崩溃。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
我看到有可能使用 @synchronized但不确定是否适合这种情况。
如何停止此崩溃?
通过用:
替换我的[连接启动]来解决[connection start:[[SRLongPollingTransport alloc] init]]
必须导入" srlongpollingtransport.h"才能使这项工作...
来源:https://github.com/dyknow/signalr-objc/issues/243