這可能聽起來很奇怪。「重新初始化」共享實例
方案
實施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方法重新初始化是trouble.How我可以指定一個新的URL,讓我的共享實例用的BaseURL如新網址。
我的嘗試:
我使用設置包的目的,我在我的用戶的默認值現在只需要創建一個客戶端,並開始獲得responses.How我能實現它的網址是什麼?
澄清:
更改服務器......意味着我有5 VC和一個登錄VC和所有的服務器基本URL是一樣的,直到用戶去修改設置頁面。所以以後這意味着設置編輯用戶必須啓動應用程序重新登錄,然後獲取所有服務。
初學者問題。請說明還有什麼要做。我幾乎完成了一切,所以一個完整的改變是有點麻煩!但是,你們能解釋更多以幫助我重寫嗎? – 2013-03-19 14:50:31
@bbum一個懷疑。如果我嘗試這種方式oauth成爲我的麻煩..我設置客戶端頭與我從登錄頁面獲得的令牌,因此我設計爲一個共享/單身實例。如果我以另一種方式使它如何我可以管理嗎? – 2013-03-19 15:14:33