0

我有 RootViewController 在其中创建我的 MainViewDownload 实例并调用该实例的方法。

MainViewDownload *download = [[MainViewDownload alloc] init];
[download loadMainViewImages];

我怎么知道 loadMainViewImages 何时完成?我只从 RootViewController 调用 loadMainViewImages,但 loadMainViewImages 调用 MainViewDownload 类中的另一个方法(比如说 method2),并且该 method2 再次调用 method3。那么,有没有办法知道 loadMainViewImages 何时完成(实际上是 method3 自上次调用以来何时完成)。

4

1 回答 1

1

如果您不是多线程,即启动一个在独立线程上运行的loadMainViewImages方法,那么这些方法将按顺序执行。因此,一旦loadMainViewImages返回,您就可以确定“其中”的所有内容都已执行。这就是方法的工作原理。

编辑以更好地格式化评论:

主视图下载.h

@protocol MainViewDownloadDelegate;

@interface MainViewDownload
@property (nonatomic, weak) NSObject<MainViewDownloadDelegate> *delegate;
@end

@protocol MainViewDownloadDelegate
- (void)downloadDidFinish:(MainViewDownload *)download;
@end

主视图下载.m

@implementation MainViewDownload

- (void)someMethodThatDownloadsStuff_OrIsCalledAfterTheDownload {
    ...
    if ([self.delegate respondsToSelector:@selector(downloadDidFinish:)]) {
        [self.delegate downloadDidFinish:self];
    }
}

@end

RootViewController.h

@interface RootViewController <MainViewDownloadDelegate>
...
@end

根视图控制器.m

@implementation
...
- (void)downloadDidFinish:(MainViewDownload *)download {
    // hide the download view here.
}
@end

确保将下载视图的委托设置为根视图控制器。

于 2013-05-18T14:02:06.020 回答