我们开始看到应用启动时发生的崩溃。 我无法重现它,它只发生在一些用户身上。
异常是:异常类型:EXC_BAD_ACCESS代码:KERN_INVALID_ADDRESS位于0x3250974659
崩溃发生在名为com.apple.NSURLConnectionLoader的线程中
致电-[NSBlockOperation main]
这是该线程的堆栈跟踪:
0 libobjc.A.dylib objc_msgSend + 9 1 Foundation -[NSBlockOperation main] + 200 2 Foundation -[__NSOperationInternal start] + 840 3 Foundation -[_NSCFURLProtocolBridgeWithTrampoline processEventQ] + 344 4 Foundation -[_NSCFURLProtocolBridgeWithTrampoline pushEvent:from:] + 298 5 Foundation -[_NSCFURLProtocolBridge stop] + 88 6 Foundation _bridger + 64 7 CFNetwork __block_global_7 + 24 8 CFNetwork __block_global_8 + 12 9 CFNetwork ___performAsync_block_invoke_068 + 18 10 CoreFoundation CFArrayApplyFunction + 176 11 CFNetwork RunloopBlockContext::perform() + 74 12 CFNetwork MultiplexerSource::perform() + 188 13 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 14 CoreFoundation __CFRunLoopDoSources0 + 212 15 CoreFoundation __CFRunLoopRun + 646 16 CoreFoundation CFRunLoopRunSpecific + 356 17 CoreFoundation CFRunLoopRunInMode + 104 18 Foundation +[NSURLConnection(Loader) _resourceLoadLoop:] + 308 19 Foundation __NSThread__main__ + 972 20 libsystem_c.dylib _pthread_start + 308
感谢任何帮助,以了解可能导致此类崩溃的原因。
答案 0 :(得分:0)
我的猜测(因为没有代码所有答案都会猜测) - 你是否在块执行之前解除了你在块中使用的对象。
粘贴代码,以便我们提供更多帮助。
答案 1 :(得分:0)
对我这个代码间接造成了崩溃。如果我正确读取崩溃转储
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]
正在触发NSURLConnectionLoaderThread。这可能是他们用于异步支持的内容。但是当我使用同步请求时,我无法在线程运行时释放对象。如果你问我,这是IOS 7中的一个错误。
NSMutableURLRequest* request = [self setupRequestWithService:service andMethod:operation];
[request addValue:CONTENT_TYPE_APPLICATION_JSON forHTTPHeaderField:REQUEST_HEADER_CONTENT_TYPE];
[request setHTTPMethod:@"POST"];
NSError* error = nil;
NSData* jsonData = nil;
NSAssert(message,@"Message must not be null");
jsonData = [NSJSONSerialization dataWithJSONObject:[message toDictionary] options:kNilOptions error:&error];
NSAssert(! error, @"Message could not be json serialized");
Log(@"----------------------------------------------------------------------");
Log(@"JSON DATA: - %@", [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding]);
Log(@"----------------------------------------------------------------------");
[request setHTTPBody:jsonData];
// Send Synchronous Request
NSURLResponse *response = nil;
error = nil;
NSData* responseData = nil;
NSString* responseString = nil;
responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];