Swift學習第二練——Swift項目時光電影

Swift學習第二練——Swift項目時光電影

    很早之前的一個OC的練習項目,用swift從新寫了一遍,由於xcode版本的更新對swift的兼容度也在不斷改變,此版本適用於xcode6.1。git

    這個項目中,用swift將iOS官方SDK中的HTTP進行了封裝,使用了swift編寫的異步加載網絡圖片的方法。練習了用swift操做界面佈局,跳轉界面等的方法。github

    下面是封裝的下載類的核心代碼:swift

private var httpConnection:NSURLConnection?
class ZYHHttpRequset: NSObject,NSURLConnectionDataDelegate{
    var requestUrl:String?
    var downloadData:NSMutableData=NSMutableData()
    var isDownloadSuccess:Bool?
    var delegate:ZYHHttpRequestDelegate?
    class func requestFormUrl(url:NSString)->ZYHHttpRequset{
        var oldRequest:ZYHHttpRequset?=ZYHHttpRequestManager.sharedHttpRequestManager().requestForKey(url)
        if (oldRequest != nil){
            println("該任務存在")
            return oldRequest!
        }
        //新建下載任務
        var request:ZYHHttpRequset=ZYHHttpRequset()
        request.requestUrl=url
        request.startRequestUrl(url)
        ZYHHttpRequestManager.sharedHttpRequestManager().addTask(request, key: url)
        return request
    }
    
    func stop(){
        if httpConnection != nil {
            httpConnection?.cancel()
            httpConnection = nil
        }
    }
    
    //開始下載請求
    private func startRequestUrl(url:NSString){
        if httpConnection != nil {
            httpConnection!.cancel()
            httpConnection==nil
        }
        //建立鏈接對象
        var request=NSURLRequest(URL: NSURL(string: url)!)
        httpConnection=NSURLConnection(request: request, delegate: self)
        
    }
    //重寫協議中的方法
    func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) {
        downloadData.length=0
    }
    func connection(connection: NSURLConnection, didReceiveData data: NSData) {
        downloadData.appendData(data)
    }
    func connectionDidFinishLoading(connection: NSURLConnection) {
        isDownloadSuccess = true
        delegate!.ZYHHttpRequestSuccsee(self)
        ZYHHttpRequestManager.sharedHttpRequestManager().removeTaskFromUrl(self.requestUrl!)
    }
    func connection(connection: NSURLConnection, didFailWithError error: NSError) {
        println("加載失敗")
        println(error)
        self.isDownloadSuccess=false
        ZYHHttpRequestManager.sharedHttpRequestManager().removeTaskFromUrl(self.requestUrl!)
    }
    
    
    
    
}
protocol ZYHHttpRequestDelegate{
    func ZYHHttpRequestSuccsee(request:ZYHHttpRequset)
}

項目部分截圖:xcode

 

github源碼地址:https://github.com/ZYHshao/SwiftMovie網絡

其中錯誤之處,歡迎指教,但願在交流中,不斷進步!app

專一技術,熱愛生活,交流技術,也作朋友。異步

——琿少 QQ羣:203317592佈局

相關文章
相關標籤/搜索