我有RootViewController,我在其中创建我的MainViewDownload实例并调用该实例的方法。
MainViewDownload *download = [[MainViewDownload alloc] init];
[download loadMainViewImages];
我如何知道loadMainViewImages何时完成?我只从RootViewController调用loadMainViewImages,但loadMainViewImages调用MainViewDownload类中的另一个方法(比如说method2),然后该方法再次调用method3。那么,有没有办法知道loadMainViewImages何时完成(实际上当method3自上次调用以来完成时)。
答案 0 :(得分:1)
如果您不是多线程,即启动一个在loadMainViewImages
的单独线程上运行的方法,那么这些方法将按顺序执行。因此,一旦loadMainViewImages
返回,您就可以确定“其中”的所有内容都已执行。这就是方法的工作方式。
编辑以更好地格式化评论:
MainViewDownload.h
@protocol MainViewDownloadDelegate;
@interface MainViewDownload
@property (nonatomic, weak) NSObject<MainViewDownloadDelegate> *delegate;
@end
@protocol MainViewDownloadDelegate
- (void)downloadDidFinish:(MainViewDownload *)download;
@end
MainViewDownload.m
@implementation MainViewDownload
- (void)someMethodThatDownloadsStuff_OrIsCalledAfterTheDownload {
...
if ([self.delegate respondsToSelector:@selector(downloadDidFinish:)]) {
[self.delegate downloadDidFinish:self];
}
}
@end
RootViewController.h
@interface RootViewController <MainViewDownloadDelegate>
...
@end
RootViewController.m
@implementation
...
- (void)downloadDidFinish:(MainViewDownload *)download {
// hide the download view here.
}
@end
确保将下载视图的委托设置为根视图控制器。