1

以下のコードに似たスクリプトを作成しました。「dispatch_async」内にブレークポイントを保持しましたが、実行されません。ここで何が問題になる可能性がありますか?

 dispatch_async(dispatch_get_main_queue()) {

    let array = response!.allObjects as! [NSArray]    
   XCTAssertNotEqual(array.count, 0, testPassed);
   self.waitForExpectationsWithTimeout(10, handler: { (error: NSError?) -> Void in
       if(error != nil) {
          XCTFail("Failed with error: \(error)
      }
     })


 }
4

1 に答える 1

2

これdispatch_asyncは単体テストでは意味がありません。単体テストはメイン キューで実行されています。単体テストが終了するまで、キューを解放して別のブロックを実行することはありません。この時点では、このブロックを実行するには遅すぎます。

書かれているように、これが理にかなっている唯一の方法は、をdispatch_async完全に削除することです。あなたはメインスレッドにいます。必要なコードを実行するだけです。

于 2015-11-09T02:27:09.180 に答える