0
我在這裏掙扎,我希望你能幫上忙。我想創建一個所有我的webservice調用所在的類。我想要所有的調用異步。我有的問題是如果返回數據,如果它是異步的。我會假設我需要使用委託,但我不知道如何編寫它。iOS異步http呼叫和代表
感謝先進!
我在這裏掙扎,我希望你能幫上忙。我想創建一個所有我的webservice調用所在的類。我想要所有的調用異步。我有的問題是如果返回數據,如果它是異步的。我會假設我需要使用委託,但我不知道如何編寫它。iOS異步http呼叫和代表
感謝先進!
如果您要編寫一個請求所有HTTP調用的類,則塊是要走的路。如果您選擇使用代表,您的代碼將分散。您可以如下實施:
@interface WebServiceManager : NSObject
- (void) dataForUser:(NSString*) userId withCompletionHandler:(void(^)(id userData)) onComplete;
...
@end
@implementation WebServiceManager
- (void) dataForUser:(NSString*) userId withCompletionHandler:(void(^)(id userData)) onComplete {
// Use NSURLConnection sendAsynchronousRequest OR AFHTTP Class
// to make HTTP Calls
// assume id data as data retreived from service.
onComplete(data); // Return Data
}
@end
從你的模型類可以實例WebServiceManager
類的一個對象,如下使用:
// Model Class
- (void) getUserInfo {
WebServiceManager *webSvc = [[WebServiceManager alloc] init];
[webSvc dataForUser:@"foo" withCompletionHandler:^(id response) {
// response is the data returned from HTTP async call.
// do something with response now.
}];
}
// With Blocks your code for requesting data and processing data will be one place now.
這是完美的!和一個很好的介紹塊。我喜歡!謝謝! – DJH
您可以使用AFNetworking。然後創建一個將發佈/獲取所有請求的單例。 –
你的問題與如何編寫這個特定的委託協議,或者如何編寫一般的委託協議有關嗎? – rdelmar
查看Apple的文檔。你會發現一些示例代碼這樣做。 – gnasher729