我是IOS开发的新手,目前遇到了一个问题。
当调用方法A时,它会调用方法B,然后等待委托connectionDidFinish
完成后执行MethodC。
我的问题是,如何确保methodA到methodC已经执行完毕才执行NSLog?
我发现解决这个问题的一种方法是使用通知中心。在执行完MethodC后向我发送通知。但我认为这不是一个好的解决方案。有其他方法吗?
示例:
[a methodA];
NSLog(@"FINISH");
我是IOS开发的新手,目前遇到了一个问题。
当调用方法A时,它会调用方法B,然后等待委托connectionDidFinish
完成后执行MethodC。
我的问题是,如何确保methodA到methodC已经执行完毕才执行NSLog?
我发现解决这个问题的一种方法是使用通知中心。在执行完MethodC后向我发送通知。但我认为这不是一个好的解决方案。有其他方法吗?
示例:
[a methodA];
NSLog(@"FINISH");
- (void)someMethod
{
[self methodAWithCompletion:^(BOOL success) {
// check if thing worked.
}];
}
- (void)methodAWithCompletion:(void (^) (BOOL success))completion
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, kNilOptions), ^{
// go do something asynchronous...
dispatch_async(dispatch_get_main_queue(), ^{
completion(ifThingWorked)
});
});
}