我從零開始學習iOS編程。模型,塊和完成處理程序哦我的
我希望我的應用能夠從網站中提取XML。我在想,爲了符合MVC模式,我應該有一個模型類,它只是提供了一種方法來實現這一點(也許它也解析了XML並返回一個數組)。
麻煩的是,所有我發現教程教NSURLSession在視圖和控制器的情況下 - 所以編輯的appdelegate,或創建一個視圖控制器等
我從蘋果文檔下面的方法而且我現在有一個按鈕被按下時可以作爲IBAction運行(所以我可以運行它並輕鬆測試)。我想獲得它的工作,然後把它放在它自己的等級:
__block NSMutableData *webData;
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *delegateFreeSession = [NSURLSession sessionWithConfiguration:defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];
[[delegateFreeSession dataTaskWithURL: [NSURL URLWithString:url] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
NSLog(@"Got response %@ with error %@.\n", response, error);
NSLog(@"DATA:\n%@\nEND DATA\n", [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]);
webData = [[NSMutableData alloc] initWithData:data];
}
]resume];
我眼前的問題是:
有人可以解釋這個處理程序是如何工作的,以及如何獲得data
出來的呢?它正在工作,數據從網站獲取xml並將其記錄在控制檯上,但將其複製到webData
不起作用,它編譯但不復制。 (我還在搞清楚爲什麼__block
聲明允許webData
潛入那裏首先!)
我更大的問題是,如果每個人都認爲這個過程的單獨模型類的想法是一個好主意。有沒有更好的設計方法?
謝謝!
也許你查找。那裏的答案可能會給你提示什麼是錯的。 –
2014-09-19 15:55:56
我已經看過那個頁面。我已經在使用委託自由會話,所以我不知道它是如何適用的......另外,我的完成處理程序正在執行,我根本不知道如何從中取出數據。 – MayNotBe 2014-09-19 16:33:59
「複製」是什麼意思? – Unheilig 2014-09-19 17:00:24