1. ホーム
  2. ios

[解決済み] メインスレッドでメソッドを呼び出す?

2023-04-17 09:12:46

質問

まず最初に、私はiphone用のコードを書いています。 私は、メインスレッド上でメソッドを呼び出すことができるようにする必要があります。 performSelectorOnMainThread . 私が使用したくない理由は performSelectorOnMainThread を使いたくない理由は、ユニットテストのためにモックを作ろうとしているときに問題を起こすからです。

[self performSelectorOnMainThread:@Selector(doSomething) withObject:nil];

問題は、私のモックが、どのように doSomething を呼び出す方法は知っていますが performSelectorOnMainThread .

何か解決策はありますか?

どのように解決するのですか?

Objective-C

dispatch_async(dispatch_get_main_queue(), ^{
    [self doSomething];
});

スウィフト

DispatchQueue.main.async {
    self.doSomething()
}

レガシースイフト

dispatch_async(dispatch_get_main_queue()) {
    self.doSomething()
}