iOS开发 - 第05篇 - 项目 - 11 - const & git & 项目重构
来源:互联网 发布:xp禁止运行内置软件 编辑:程序博客网 时间:2024/06/03 23:47
1、发微博键盘最近标签页完善
问题:
1>表情出现重复
2>其他标签页转换到最近标签也没有及时出现最新使用表情
1.1 表情实时刷新
方法一:切换到最近标签页,刷新最新使用表情
注:需要在listView中表情数组的setter方法中先移除之前的控件,并在最后[selfsetNeedsLayout];
方法二:上述方法只能在其他标签页切换到最近标签页的时候刷新表情,若在最近页需要点击表情按钮立即刷新,需要监听表情按钮点击的通知
1.2 表情重复问题
在表情工具类,存储表情的时候增加判断,删除重复表情,再将最新的表情添加到第一个位置
注:不能仅仅用[emotionsremoveObject:emotion];因为这只是比较内存地址来删除对象,除非重写HWEmotion的isEqual方法
1.3 频繁读写问题
问题:之前的做法,每次添加表情的时候先把沙盒中原先保存的表情全部读进来,再添加,再写入沙盒,读写比较频繁
解决办法:将最近使用的表情数组放到内存中
注:由于是类方法,不能使用属性,可以添加一个全局变量
2、const的使用 --- 重要
注:写字符串、整形等常量的时候建议使用const,不要使用宏!!!
2.1 const使用注意
2.2 OC中字符串常量写法
NSString* constname = @"Jack";(const修饰name)
即以后不能在修改name:name= @"Rose";
2.3 使用const好处
1> 安全性考虑,比如一个函数中使用const修饰传递参数,可以保证在函数中只能读取参数对应的值,而不能修改
2> 与宏对比,可以节省内存,使用宏会将程序中所有用到宏的地方替换成宏对应变量,每一个变量都是一份临时内存,而使用全局const常量,可以保证永远只有一份内存
2.4 iOS项目中使用方法
注1:不能在pch文件中定义常量,否则会在每个文件中都包含该常量的定义,造成重复定义
注2:一般情况下,定义一个全局变量在.m文件中,其他文件想要访问这个全局变量可以使用extern关键字,引用该常量即可
注3:在项目中使用方法:在.m文件中定义相关常量,在.h中引用常量,其他文件想要使用该常量,#import “Const.h”即可
1>HWConst.h
2>HWConst.m
3、git基本使用
网络教程:点击打开链接
常用命令:
4、系统适配
#defineiOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0)
5、项目分层
之前的做法:在发送网络请求的控制器中直接使用AFN,这样对AFN的依赖性太高,一旦AFN升级,修改很多东西,则需要在很多控制器中修改相关代码,不易于维护。
正确做法:给项目分层,将网络相关代码分层到HttpTool,封装AFN,在控制器中直接使用HttpTool,屏蔽AFN,一旦AFN升级,直接改HttpTool即可。
6、集成上下拉刷新控件MJRefresh
结束刷新调用
[self.tableViewheaderEndRefreshing];
[self.tableViewfooterEndRefreshing];
- iOS开发 - 第05篇 - 项目 - 11 - const & git & 项目重构
- iOS开发 - 第05篇 - 项目 - 05 - 首页
- iOS开发 - 第05篇 - 项目 - 01 - 搭建框架
- iOS开发 - 第05篇 - 项目 - 02 - 导航栏
- iOS开发 - 第05篇 - 项目 - 04 - OAuth授权 & 首页
- iOS开发 - 第05篇 - 项目 - 06 - 首页
- iOS开发 - 第05篇 - 项目 - 07 - 首页
- iOS开发 - 第05篇 - 项目 - 08 - 发微博
- iOS开发 - 第05篇 - 项目 - 09 - 发微博
- iOS开发 - 第05篇 - 项目 - 10 - 发微博
- iOS开发 - 第05篇 - 项目 - 12 - 图文混排
- iOS开发 - 第05篇 - 项目 - 13 - 离线缓存
- iOS项目开发中Git的使用
- ios项目删除Git
- ios 资源库git项目
- iOS开发 - 第05篇 - 项目 - 03 - 版本新特性 & OAuth授权
- 基于MVC项目iOS项目重构的思路
- git项目开发记录
- 青蛙的约会
- Model
- 欢迎使用CSDN-markdown编辑器
- LA3938 线段树+分治
- 数据库的导入和导出
- iOS开发 - 第05篇 - 项目 - 11 - const & git & 项目重构
- Myeclipse10以及更高版本激活
- ionic之如何应用karma进行单元测试(2)-测试controller和service
- API实例
- 正则表达式(入门)
- 网页之时钟
- x264重要结构体详细说明(2): x264_image_t、x264_picture_t、x264_nal_t
- ios9常见的报错
- 天易41----java实现两个实体类属性之间的复制