GCDWebServer を使用して、iPhone からローカル ネットワーク上の他のデバイスに写真を共有しています。
自分のブロック内で GCDWebServerCompletionBlock を呼び出そうとしていますが、ログなしでアプリがクラッシュしますが、GCDWebServerConnection で「SIGABRT を通知」します。
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 を呼び出す方法は?