标签:
问题:
1>表情出现重复
2>其他标签页转换到最近标签也没有及时出现最新使用表情
1.1 表情实时刷新
方法一:切换到最近标签页,刷新最新使用表情
注:需要在listView中表情数组的setter方法中先移除之前的控件,并在最后[selfsetNeedsLayout];
方法二:上述方法只能在其他标签页切换到最近标签页的时候刷新表情,若在最近页需要点击表情按钮立即刷新,需要监听表情按钮点击的通知
1.2 表情重复问题
在表情工具类,存储表情的时候增加判断,删除重复表情,再将最新的表情添加到第一个位置
注:不能仅仅用[emotionsremoveObject:emotion];因为这只是比较内存地址来删除对象,除非重写HWEmotion的isEqual方法
1.3 频繁读写问题
问题:之前的做法,每次添加表情的时候先把沙盒中原先保存的表情全部读进来,再添加,再写入沙盒,读写比较频繁
解决办法:将最近使用的表情数组放到内存中
注:由于是类方法,不能使用属性,可以添加一个全局变量
注:写字符串、整形等常量的时候建议使用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
网络教程:点击打开链接
常用命令:
#defineiOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0)
之前的做法:在发送网络请求的控制器中直接使用AFN,这样对AFN的依赖性太高,一旦AFN升级,修改很多东西,则需要在很多控制器中修改相关代码,不易于维护。
正确做法:给项目分层,将网络相关代码分层到HttpTool,封装AFN,在控制器中直接使用HttpTool,屏蔽AFN,一旦AFN升级,直接改HttpTool即可。
结束刷新调用
[self.tableViewheaderEndRefreshing];
[self.tableViewfooterEndRefreshing];
iOS开发 - 第05篇 - 项目 - 11 - const & git & 项目重构
标签:
原文地址:http://blog.csdn.net/nsryan/article/details/52239036