【发布时间】:2014-04-11 15:35:19
【问题描述】:
我想知道如何正确执行以下操作:我有一个方法是返回一个 NSData 对象。它从UIDocument 获取NSData 对象。 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。
我怎样才能做到这一点而不必使线程阻塞等待/while循环?
谢谢。
【问题讨论】:
标签: ios objective-c block uidocument completionhandler