小伙伴们,在学习完多线程和网络的知识之后,是不是很期待自己能够实现一个简单的OC程序开发呢。下面小伙伴们就可以运用所学知识,完成如下运行效果图所示的功能。
题目要求:
使用OC所学知识完成 “异步下载图片”,运行效果见视频。
一、语言和环境
1、实现语言
Objective-C语言
2、环境要求及开发工具
MAC OS、Xcode
二、程序整体要求
1、根据实现所需功能,划分功能模块,设置对应的类,在类中实现相应功能。
2、代码结构要层次分明,逻辑思路清晰严谨,类名变量名规范易懂。
3、代码中出现的属性、方法,适当添加注释。
4、要求Objective-C代码实现、运行结果与提供的效果图结构保持一致。
5、将作业项目形成压缩文件并提交。
三、思路分析:
由运行效果,可以分析出项目中具体包括的功能模块。
1、通过发送网络请求异步下载三张图片
使用原生类NSURLSession发请求。请求数据返回后,回到主线程更新UI。
2、异步保存图片
使用GCD或者NSOperation异步向沙盒中保存图片。
3、同步保存图片
使用GCD或者NSOperation同步向沙盒中保存图片。
4、将数据保存在Documents中
5、清除沙盒数据
将沙盒中的三张图片移除
注意:为了看出异步下载图片、同步保存图片、异步保存和清除数据的效果,需要在合适的位置进行打印当前线程或者某个功能实现的结果,成功或者失败。
如果出现网络请求失败情况,可以参考下面的解决办法
1、在info.plist中添加NSAPPTransportSecurity 类型是Dictionary
2、在NSAPPTransportSecurity下添加NSAllowsArbitraryLoads 类型是Boolean,值为Yes
规范【10分】
> 每个模块都有自己独立的类。
> 类、变量属性、功能方法命名规范。
> 代码结构层次分明。
> 代码书写规范、添加适量注释。
程序整体运行效果【10分】
> 程序正常运行,且满足效果图要求。
请求异步下载图片功能【28分】
> 正确实现异步发送请求的方法。
> 正确实现回主线程显示图片。
异步保存图片功能【16分】
> 能够正确使用GCD或NSOperation异步方法。
同步保存图片功能【16分】
> 能够正确使用GCD或NSOperation同步方法。
写文件功能【10分】
> 能够正确向Documents目录下保存数据。
删除沙盒内的数据功能【10分】
> 能够正确获取到三张图片的path,并删除内容。