iOSの - ビジネスロジックの処理ケーススタディ1 - タイムアウトアクション

シーンの説明:今では、複数のサードパーティのSDKを統合します。(負荷データおよび第三の材料必要がある、第三者SDKシナリオが要求開始する異なるシリアルため)

図1は、いくつかのサードパーティSDK二つが正常にコールバックロードがあり、didloadある(データロードが完了し)、他方はaddidload(材料ロードされた)、終了します。

didload(データと材料装填が完了し)、クリエイティブがロードされていない、既存のロジックが一定期間内に要求した後に開始され、タイムアウトエラー:2は、一部のサードパーティは、唯一のコールバックをSDK。(補正データの読み込みが完了した後に材料がロードされている)の要請

新しいロジック:ロード新しいデータ・アウト・エラー、(短いタイムアウト、材料のロードよりもタイムアウトデータロード)が満了し、次のリクエスト、超えていない、プロセスがロード材料を待ちません。ロード材料は、次の要求を満了します。

目的:データ要求の時間を短縮します。保存したデータのロードプロセスと材料ロードのタイムアウトタイムアウト。

 

髪dataOutTimeとresourceOutTimeのサーバー2つのパラメータの異なる第三者とのそれぞれの、唯一のサードパーティ製の創造的な負荷の成功コールバックがある場合にのみ、resourceOutTimeにこの引数を発行しました。

 

didloadは、効果的な変更isDataLoadedパラメータを実行するには、5秒以内に開始するための要求を開始した後、ブロックをブロックを呼び出すコールバック。

擬似コード:

もし(dataOutTime!= nilの){

  __block BOOL isDataLoaded = NO。 

  ブロック(){

  isDataLoaded =はい

  }

  Dispatch_after(dataOutTime){

    (もし!isDataLoaded){

    タイムアウトロジックデータのロード。

    }

  }

}

Dispatch_after(resourceOutTime){

  ロジックタイムアウトクリエイティブロード。

}

 

dataOutTime後、次いで、ブロックdataOutTime時の時間に通話時間が呼び出さない場合、2つのSDKの様々な第三者にデータロードタイムアウト論理を実行し、isDataLoadedパラメータがNOで、コールバックコードブロックと呼ばないdidload、コールバックをdataOutTimeにdidloadと実行ブロック、isDataLoaded引数があるはい、何もしません。

おすすめ

転載: www.cnblogs.com/qzCodeDiary/p/11844264.html