我想知道如何正确执行以下操作:我有一个返回NSData
对象的方法。它NSData
从 a 中获取对象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
's return
。
我怎样才能做到这一点而不必使线程阻塞等待/while循环?
谢谢。