シーンの説明:今では、複数のサードパーティの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引数があるはい、何もしません。