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

简介:

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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

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

目录
相关文章
|
6月前
|
人工智能 物联网 API
LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战
LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战
LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战
|
6月前
|
Swift
swift相关项目包含私有库引起的Undefined symbols for architecture arm64
swift相关项目包含私有库引起的Undefined symbols for architecture arm64
62 0
|
6月前
|
IDE 开发工具 Swift
创建一个Swift项目
创建一个Swift项目
109 1
|
Web App开发 搜索推荐 Linux
20 年的 Debian 开发者被排挤出项目;操作系统 “火龙” 被质疑抄袭;Swift 5.6 发布 | 思否周刊
20 年的 Debian 开发者被排挤出项目;操作系统 “火龙” 被质疑抄袭;Swift 5.6 发布 | 思否周刊
209 0
|
开发工具 Swift iOS开发
iOS 问题 1: OC项目导入swift三方库不兼容问题
iOS 问题 1: OC项目导入swift三方库不兼容问题
1072 0
iOS 问题 1: OC项目导入swift三方库不兼容问题
|
前端开发 测试技术 Swift
Swift学习笔记——新建项目
在xcode菜单中选择 new -> project -> single view app 点击next在弹出窗中填写项目名称 这里languge有可以选择object-c或swift作为项目语言。这里我们学习swift,所以选择swift。 如果language选择swift,下面的user interface可以选择swiftUI和storyboard。 SwiftUI是2019 年 WWDC 大会上,苹果在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框架,与flutter类似,是用代码编写页面,支持快速预览。
725 0
|
Swift
(一)swift的基本学习
(一)swift的基本学习
175 0
|
开发工具 Swift iOS开发
Swift学习第二练——Swift项目时光电影
Swift学习第二练——Swift项目时光电影
161 0
Swift学习第二练——Swift项目时光电影
|
Swift 开发者 iOS开发
Swift学习第一练——用Swift实现的FlappyBird小游戏
Swift学习第一练——用Swift实现的FlappyBird小游戏
191 0
Swift学习第一练——用Swift实现的FlappyBird小游戏
|
SQL 数据库 数据库管理
Swift学习第九枪之SQLite的使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/51570242 前面写了一部分关于Swift的语法学习,今天要学习的是关于IOS中数据存储的一种存储方式之SQLite的使用。
871 0