我有一個類「WebAPI」處理所有的Web API調用,該類通過基於異步委託的調用使用NSURLConnection。獲取NSURLConnection響應(來自助手類)在不同類的方法內
當一個對象需要與網絡API進行通信將使用的WebAPI的一個實例,並調用,如下圖所示在簽約的情況下,我把從AppDelegate中如下因素調用所需的方法:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
WebAPI *webAPI = [[WebAPI alloc] init];
[webAPI performLoginWithUserName:@"[email protected]" andPassword:@"password"];
}
問題是,一旦進行了performLoginWithUserName:andPassword調用,代碼就會進行並且在WebAPI.m中實現的委託方法中接收到任何/所有響應。
這是一個真正的問題,因爲我需要能夠獲得響應代碼以及從WebAPI調用發起的類方法中接收到的任何數據。我希望能這樣:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
WebAPI *webAPI = [[WebAPI alloc] init];
WebAPIResponse * webAPIRespnse = [webAPI performLoginWithUserName:@"[email protected]" andPassword:@"password"];
}
哪裏WebAPIResponse類是一個自定義類將包含HTTP狀態代碼和所接收的任何數據。
如果我改變WebAPI.m使用NSURLConnection sendSynchronousRequest,但這並不能讓我接收所有的HTTP代碼,這是可以實現的。
滿足此要求的最佳方式是什麼?
謝謝你的幫助。
由於委託執行的異步性,這是做一個非常奇怪的事情。畢竟,在上面的代碼中,您希望'WebAPIResponse'立即就緒,而您的'WebAPI'仍然處理請求。 IMO更合理的解決方案是在您的WebAPI類中添加對委託對象的支持... – Hless
我不明白做我需要的東西需要NSURLConnection完成並接收響應和數據,它更多隻要信息可用於退貨。 –