【无限互联】学员作品:慕课网iOS客户端_ios慕课系统

其他范文 时间:2020-02-28 03:06:31 收藏本文下载本文
【www.daodoc.com - 其他范文】

【无限互联】学员作品:慕课网iOS客户端由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“ios慕课系统”。

一、项目的功能业务介绍:

《慕课网》是一款完全免费的、互联网IT技术学习的平台,里面的课程内容专业,难度适中,覆盖面广。课程覆盖前端开发、PHP、Html5、Android、IOS、Swift等。无论是各阶段的开发人员都适合学习。

《慕课网》可以将你喜欢的课程添加收藏,下次想要看的时候可以直接在“我的课程”中直接观看,免去重复查询的繁琐。

《慕课网》还提供学习视频的笔记与讨论功能:可以将视频中要记录的一些问题保存下来,还可以针对一些问题发起讨论。

二、项目相应效果图:

1.整体界面之间的切换:

2.全部课程浏览:

3.课程查找:

4.课程视频的播放:

5.课程的笔记,讨论与详细信息:

6.在“我的课程”中快速查看我收藏的课程:

在此只展示了其中部分功能效果图。

三、项目中使用的技术点介绍:

1.整个项目使用了MVC的架构方式,创建了每个界面的model,view以及controller。

2.在界面的切换功能中使用了第三方框架MMDrawerController,实现左滑出现导航界面,通过点击导航界面的相应界面标题弹出对应窗口。

3.通过抓包工具获取原项目的数据接口,使用第三方框架AFNetworking请求数据。

4.项目中的图片加载使用第三方框架SDWebImage异步加载图片,防止进程阻塞导致降低用户体验。

5.项目中借鉴第三方框架EGORefreshTableHeaderView,封装了RefreshTableHeaderView,实现下拉刷新功能。通过抽象BaseTableView,添加上拉刷新功能。

6.使用第三方框架MCSwipeTableViewCell实现单元格滑动触发事件。

7.通过响应者链查找当前视图的父控制器进行数据传递,或者视图的切换。

8.项目中抽象了BaseNavigationController、BaseTableView、BaseViewController以及WXBaseModel,在项目中子类化使用避免了大量的重复代码。

9.项目中还封装了一些可以在项目中多次使用的model类,视图,控制器,以及视频播放界面。

四、总结:

1.在项目实现中遇到了一些问题:

*控制器之间切换时,有时会导致野指针报错。

错误原因:控制器中的对象在控制器销毁时没有释放。解决方法:通过查找引发错误的代码段,将调用野指针的对象在控制器将要销毁的时候安全释放。

*点击单元格push控制器,在控制器返回后,相应单元格重新加载时会自动push控制器。错误原因:单元格的复用,在复用时会刷新选中状态,导致将控制器push。

解决方法:在单元格点击事件后将单元格选中状态取消。

*项目中一些UITableViewCell类似,不想创建更多的cell类。

解决方法:在已经创建好的cell类中添加type属性,判断当前需要显示的类型,然后对相应的数据进行处理与显示,避免创建类似的cell类导致写很多重复的代码。

2.在项目实现过程中的学习:

*对项目实现中出现的错误修改,更好的对内存管理有了更深刻的理解,在使用一些属性前添加判断,避免

再次出现野指针调用的错误。*在借鉴其它第三方框架自己封装框架时,提高了自己代码的阅读能力,以及源代码的修改能力。同时对第三方框架的实现更好的理解了其实现的流程与方法。

3.项目完成后的心得体会:

对项目实现过程中认识到自己还有很多的不足,对出现的错误进行了深刻的反思,避免日后出现相同的错误,在反思的过程中也让自己学到了更多,更加的完善自身。通过这一次的项目实现,对自己的代码阅读能力,代码修改能力,代码编写能力有了很大的提升。同时也增强了自己独立开发项目的信心与动力。

4.给大家的建议:

多独自完成一些项目,可以使自己掌握的知识使用起来更熟练,实现过程中要细心,避免出现一些不该出现 的错误,遇到问题可以更多的查找官方文档、或者网上查找解决方案,搜索一些成功案例理解其实现原理、或者跟其他程序员探讨解决问题。更多的理解一些第三方框架的实现原理及实现流程,丰富自己的知识储备,加深对编程的理解。

下载【无限互联】学员作品:慕课网iOS客户端word格式文档
下载【无限互联】学员作品:慕课网iOS客户端.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文