0

MainViewDownload インスタンスを作成し、そのインスタンスのメソッドを呼び出す RootViewController があります。

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

loadMainViewImages がいつ終了したかを知るにはどうすればよいですか? 私は RootViewController から loadMainViewImages のみを呼び出しますが、loadMainViewImages は MainViewDownload クラス内の別のメソッド (メソッド 2 としましょう) を呼び出し、そのメソッド 2 はメソッド 3 を再度呼び出します。したがって、loadMainViewImages がいつ終了したかを知る方法はありますか (実際には、method3 が最後に呼び出されてから終了したとき)。

4

1 に答える 1

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

ダウンロード ビューのデリゲートをルート ビュー コントローラーに設定してください。

于 2013-05-18T14:02:06.020 に答える