Swift学习第二练——Swift项目时光电影

Swift学习第二练——Swift项目时光电影

    很早以前的一个OC的练习项目,用swift重新写了一遍,因为xcode版本的更新对swift的兼容度也在不断改变,此版本适用于xcode6.1。

    这个项目中,用swift将iOS官方SDK中的HTTP进行了封装,使用了swift编写的异步加载网络图片的方法。练习了用swift操作界面布局,跳转界面等的方法。

    下面是封装的下载类的核心代码:

1private var httpConnection:NSURLConnection? 2class ZYHHttpRequset: NSObject,NSURLConnectionDataDelegate{ 3    var requestUrl:String? 4    var downloadData:NSMutableData=NSMutableData() 5    var isDownloadSuccess:Bool? 6    var delegate:ZYHHttpRequestDelegate? 7    class func requestFormUrl(url:NSString)->ZYHHttpRequset{ 8        var oldRequest:ZYHHttpRequset?=ZYHHttpRequestManager.sharedHttpRequestManager().requestForKey(url) 9        if (oldRequest != nil){ 10            println("该任务存在") 11            return oldRequest! 12        } 13        //新建下载任务 14        var request:ZYHHttpRequset=ZYHHttpRequset() 15        request.requestUrl=url 16        request.startRequestUrl(url) 17        ZYHHttpRequestManager.sharedHttpRequestManager().addTask(request, key: url) 18        return request 19    } 20     21    func stop(){ 22        if httpConnection != nil { 23            httpConnection?.cancel() 24            httpConnection = nil 25        } 26    } 27     28    //开始下载请求 29    private func startRequestUrl(url:NSString){ 30        if httpConnection != nil { 31            httpConnection!.cancel() 32            httpConnection==nil 33        } 34        //创建连接对象 35        var request=NSURLRequest(URL: NSURL(string: url)!) 36        httpConnection=NSURLConnection(request: request, delegate: self) 37         38    } 39    //重写协议中的方法 40    func connection(connection: NSURLConnection, didReceiveResponse response: NSURLResponse) { 41        downloadData.length=0 42    } 43    func connection(connection: NSURLConnection, didReceiveData data: NSData) { 44        downloadData.appendData(data) 45    } 46    func connectionDidFinishLoading(connection: NSURLConnection) { 47        isDownloadSuccess = true 48        delegate!.ZYHHttpRequestSuccsee(self) 49        ZYHHttpRequestManager.sharedHttpRequestManager().removeTaskFromUrl(self.requestUrl!) 50    } 51    func connection(connection: NSURLConnection, didFailWithError error: NSError) { 52        println("加载失败") 53        println(error) 54        self.isDownloadSuccess=false 55        ZYHHttpRequestManager.sharedHttpRequestManager().removeTaskFromUrl(self.requestUrl!) 56    } 57     58     59     60     61} 62protocol ZYHHttpRequestDelegate{ 63    func ZYHHttpRequestSuccsee(request:ZYHHttpRequset) 64}

项目部分截图:

github源码地址:https://github.com/ZYHshao/SwiftMovie

其中错误之处,欢迎指教,希望在交流中,不断进步!

专注技术,热爱生活,交流技术,也做朋友。

——珲少 QQ群:203317592

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Swift 简介

1.Swift开发快速体验1.1目标playground快速体验&学习资源分享项目开发快速体验,了解Swift基本程序结构1.2学习资源苹果官方博客https://developer.apple

Swift3.0对AFNetworking的封装 附demo

由于最新的Alamofire(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2FAlamofire%2FAlamofire)网络框架只支持Swift3.0,现在还有一大部分开发者在项目中用OC于Swift混编的方式,所以就用最新的Swift3.

Swift调用sha1算法

在Swift中通过调用OC的CommonCrypto库可以很方便的实现String字符串转换为sha1。在一个swift项目中,需要使用桥接头文件(Bridgingheader)的方式来引入一个OC库,才能调用OC中的内容。本文也将作为Swift项目中如何调用ObjectiveC代码的一个介绍。标准实现步骤1、新建一个Obje