0

本社と海外の両方で、社内の開発者を対象とした SDK を構築しています。この SDK はシングルトンとして実装され、企業サーバーから (可能な場合) 取得したデータ オブジェクトを開発者に提供します。

SDK の初期化時に NSURLCache の sharedURLCache を使用して NSURLSessionConfiguration を構成するつもりですが、共有されているため、後でキャッシュ設定がアプリケーション開発者によって変更され、あいまいなバグにつながる可能性があるのではないかと心配しています。

より良い方法はありますか?

4

1 に答える 1

3

Objective-c と Swizzling に慣れていると仮定します。

NSURLProtocol を追加して、関連する呼び出しをインターセプトし、それらのキャッシュを個別に管理できます。

次に、他の NSURLProtocols が自分の NSURLProtocols をオーバーライドするのを防ぐために (それらは登録された順序でチェックされます)、新しい NSURLProtocol を登録する呼び出しをスウィズル[NSURLProtocol registerClass:[MyURLProtocol class]];することができます。

これが十分に文書化され、SDK を使用しているすべての開発者に伝えられていることを確認して、彼女の NSURLProtocol が常にあなたの NSURLProtocol よりも優先されることを理解していることを確認します

Swizzlingへの参照と、唯一無二のNSHipsterからの NSURLProtocol を次に示します...

于 2016-11-22T16:25:24.203 に答える