I'm using GCDWebServer to share pictures from my iPhone to others devices on local network.
I'm trying to call the GCDWebServerCompletionBlock inside my own block but my app crashes without any logs but "signal SIGABRT" on GCDWebServerConnection:
GWS_DCHECK(_responseMessage == NULL);
However, if i return directly a response outside my block, all works fine.
Here is my code:
-(void)handleMediaRequest:(GCDWebServerRequest *)request completion:(GCDWebServerCompletionBlock)completionBlock {
//...
URLParser *parser = [[URLParser alloc] initWithURLString:url];
NSString *photoId = [parser valueForVariable:@"id"];
[[PhotoLibraryManager photoLibraryManager] getPhotoWithId:photoId completionBlock:^(UIImage *image) {
NSData *data = UIImageJPEGRepresentation(image, 0.70);
completionBlock([GCDWebServerDataResponse responseWithData:data contentType:@"application/octet-stream"]);
} failureBlock:^(NSError *error) {
completionBlock([GCDWebServerDataResponse responseWithStatusCode:404]);
}];
}
How to call GCDWebServerCompletionBlock inside my own block?