次のことを正しく行う方法を知りたい: オブジェクトを返すメソッドがありNSData
ます。NSData
からオブジェクトを取得しますUIDocument
。オブジェクトは大きくなる可能性があるため、応答が開始される前にNSData
オブジェクトが完全にロードされていることを確認したいと考えています。したがって、ブロック自体からメソッドの値を返したいと思います。だから、このようなもの:
- (NSData*)getMyData {
MyUIDocument *doc = [[MyUIDocument alloc] initWithFileURL:fileURL];
[doc openWithCompletionHandler:^(BOOL success) {
if (success) {
return doc.myResponseData; // this is to be the return for the method not the block
}
}];
}
return
は明らかに の を参照しているblock
ため、これによりエラーが発生しますreturn
。
スレッドをブロックする wait/while ループを作成せずにこれを達成するにはどうすればよいですか?
ありがとう。