2014年9月30日 星期二

NSURLConnection programmatically using Swift language

【說明】

此份筆記將紀錄如何下載網路上的東西,並以NSData儲存。


【部分程式碼】

建立連線,指定代理人:

let topPaidAppsFeed: NSString = "http://phobos.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/toppaidapplications/limit=75/xml"
var appListFeedConnection: NSURLConnection!

var url: NSURL = NSURL(string: topPaidAppsFeed)
var request: NSURLRequest = NSURLRequest(URL: url)

appListFeedConnection = NSURLConnection(request: request, delegate: self)
建立URL的連線,必須有NSURL以及NSURLRequest,並設定自己為NSURLConnection的代理人。

採納Protocol:

NSURLConnectionDataDelegate, NSURLConnectionDelegate
Class必須採納NSURLConnectionDataDelegate與NSURLConnectionDelegate。

實作Method:

func connection(connection: NSURLConnection, didFailWithError error: NSError) {

}
當連線有問題時會觸發的func。

func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) {
        
}
當接收到回應時會觸發的func,此時我們就可以建立一個NSMutableData的實體。

func connection(connection: NSURLConnection, didReceiveData data: NSData) {
        
}
資料會被分成好幾個區塊傳送,此時就會透過didReceiveData來接收每一個區塊,所以我們就可以利用NSMutableData裡的appendData將區塊的資料合併成一個完整的資料。

func connectionDidFinishLoading(connection: NSURLConnection) {


}
當資料傳送完成時會觸發的func,此時就可以得到下載完成的NSMutableData,使用NSXMLParser就可以解析Data,讓我們應用。

沒有留言:

張貼留言