我試圖在應用程序啓動後在模式視圖中顯示我的遠程配置設置。一切正常,但視圖更新其configs
對象從它的NSURLConnection
委託方法更新之前。如何在繼續之前等待NSURLConnection委託完成?
我正在尋找一種解決方案,在嘗試更新視圖之前讓委託方法完成。我寧願不把這些功能放在委託方法本身中,所以我可以在其他情況下使用MYRemoteConfig
。
我懷疑這個解決方案是顯而易見的,但是我已經很長時間沒有考慮這個問題了。
在viewDidAppear{}
在MYSettingsViewController.m
MYRemoteConfig* config = [[MYRemoteConfig alloc] init];
[configs updateSettings]; // I need these delegate methods to be done
// before the next line
self.customerLabel.text = configs.customer; // Updates with empty box
self.courseLabel.text = configs.course;
-
updateSettings{}
在MYRemoteConfig.m
// code that gets uuid and sets up post request //
NSURLConnection* connection = [NSURLConnection connectionWithRequest:request
delegate:self];
[connection start];
NSLog(@"Connection should have started.");
然後在connectionDidFinishLoading{}
:(數據附加到局部變量之後)
// pull JSON objects into dictionary
[self updateProfile:settingsDictionary;
NSLog(@"%@", settingsDictionary); //works
updateProfile{}
:
// code that sets config attributes in singleton object //
self.customer = [settings objectForKey:@"Customer"]; // I need this data
self.course = [settings objectForKey:@"Course"]; // in my view controller
這已被回答http://stackoverflow.com/questions/16880686/different-nsstring-results-from-url-download –
安裝通知可能嗎? ;-) NSNotificationCenter –
或委託給你的'MYRemoteConfig'類。 – danypata