これは奇妙に聞こえるかもしれません。
シナリオ
AFOauthClient の実装
サブクラスを作成し、baseurl とすべての共有インスタンスを作成しました
+ (GYMAFOAuthClient *)sharedClient {
static GYMAFOAuthClient *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSURL *url =[NSURL URLWithString:[[NSUserDefaults standardUserDefaults] stringForKey:@"kServer_Address"]];
if (url==nil) {
[[[UIAlertView alloc]initWithTitle:@"Required" message:@"Please enter the required fields in the settings page of the application" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]show];
}
else
{
_sharedClient = [GYMAFOAuthClient clientWithBaseURL:url clientID:kClientID secret:kClientSecret];
}
});
return _sharedClient;
}
完璧に動作します。
しかし
現在、他のサーバーに切り替える必要があり、dispatch_once メソッドを使用しているため、再初期化が面倒です。新しい URL を割り当てて、baseurl を新しい URL として共有インスタンスを作成するにはどうすればよいですか。
私が試したこと:
ユーザーデフォルトに URL を設定する目的で設定バンドルを使用しています。クライアントを作成して応答の取得を開始するだけで済みます。どうすればそれを達成できますか?
説明:
サーバーを変更する...つまり、5つのVCと1つのログインVCがあり、ユーザーが設定ページに移動して編集するまで、すべてのサーバーベースURLは同じです。つまり、設定を編集した後、ユーザーはアプリケーションの再ログインを開始してからすべてを取得する必要がありますサービス。