文档章节

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

珲少
 珲少
发布于 2015/06/28 16:26
字数 385
阅读 298
收藏 5

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

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

    这个项目中,用swift将iOS官方SDK中的HTTP进行了封装,使用了swift编写的异步加载网络图片的方法。练习了用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)
}

项目部分截图:

 

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

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

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

——珲少 QQ群:203317592

© 著作权归作者所有

共有 人打赏支持
珲少

珲少

粉丝 862
博文 386
码字总数 463183
作品 0
上海
iOS工程师
私信 提问
Swift学习第一练——用Swift实现的FlappyBird小游戏

用Swift实现的FlappyBird小游戏 伴随着apple公司对swift的推广态度深入,swift火的很快,并且swift精简便捷的语法和强大的功能,对于使用Object—C开发iOS的开发者来说,也有必要了解学习一下...

珲少
2015/06/11
0
7
国内一线互联网技术团队帮你进阶,助你成长

原创很累,很辛苦,所以我经常是约稿和挑选很多精品的文章推送给大家。我有时不生产内容,但是我是精品内容和技术文章的搬运工。今天的分享来自于腾讯,阿里,美团等技术团队本月输出的精品文...

非著名程序员
2017/11/30
0
0
Swift 开发的基本设置

重要事项 这是一篇正在开发中的API或技术的初始文档。Apple提供此信息来帮助您对采用本技术做规划,以及根据这里的描述的编程接口来使用Apple品牌的产品。这些信息受变更影响,并且本文档中的...

oschina
2014/06/03
1K
0
一向“圈地自萌”的苹果为什么选择将Swift开源?

苹果在今年六月的WWDC大会上推出了Swift2.0,并宣布将于今年年底前开放源代码。而苹果也在近日正式将Swift语言转成了开源编程语言,并将其放到代码托管网站Github中以供更多开发者共同开发。...

oschina
2015/12/08
5.1K
27
你没看错:Swift可以直接调用Python函数库

上周Perfect又推出了新一轮服务器端Swift增强函数库:Perfect-Python。对,你没看错,在服务器端Swift 其实可以轻松从其他语种的函数库中直接拿来调用,不需要修改任何内容。如果没有类似经验...

rockford
2017/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

 tomcat启动问题

tomcat启动问题: 解决方法:tomcat bin目录下 新建setenv.sh文件 文件上加入 export CATALINA_OPTS='-Djava.awt.headless=true' 该方法对tomcat8以上有用...

west_coast
16分钟前
1
0
《从0开始学架构》学习笔记索引

一、架构设计相关概念及复杂度来源 二、架构设计三原则 三、架构设计流程 ... 完整课程(微信扫码):

whoru
30分钟前
1
0
新的尝试!ComponentOne WinForm 和 .NET Core 3.0

在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form、Windows Present...

葡萄城技术团队
32分钟前
0
0
Try .NET & Github Gist

Try .NET Try .NET 是微软最近推出的在线 C# 运行环境,不用安装 Visual Studio 等,就可以直接上手写 C# 代码. 可以先进来写两行代码看看 https://try.dot.net/ 对于初学者/代码分享而言是一个...

taadis
33分钟前
21
0
PyCharm入门教程——掌握PyCharm键盘快捷键

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部