【无限互联】学员作品:慕课网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.给大家的建议:

多独自完成一些项目,可以使自己掌握的知识使用起来更熟练,实现过程中要细心,避免出现一些不该出现

的错误,遇到问题可以更多的查找官方文档、或者网上查找解决方案,搜索一些成功案例理解其实现原理、

或者跟其他程序员探讨解决问题。更多的理解一些第三方框架的实现原理及实现流程,丰富自己的知识储备

,加深对编程的理解。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值