Я использую GCDWebServer для обмена изображениями с моего iPhone на другие устройства в локальной сети.
Я пытаюсь вызвать GCDWebServerCompletionBlock внутри своего собственного блока, но мое приложение падает без каких-либо журналов, кроме «сигнала SIGABRT» на GCDWebServerConnection:
GWS_DCHECK(_responseMessage == NULL);
Однако, если я верну ответ за пределы своего блока, все будет работать нормально.
Вот мой код:
-(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]);
}];
}
Как вызвать GCDWebServerCompletionBlock внутри моего собственного блока?