問題:
1>表情出現重復
2>其他標簽頁轉換到最近標簽也沒有及時出現最新使用表情
方法一:切換到最近標簽頁,刷新最新使用表情
注:需要在listView中表情數組的setter方法中先移除之前的控件,並在最後[selfsetNeedsLayout];
方法二:上述方法只能在其他標簽頁切換到最近標簽頁的時候刷新表情,若在最近頁需要點擊表情按鈕立即刷新,需要監聽表情按鈕點擊的通知
在表情工具類,存儲表情的時候增加判斷,刪除重復表情,再將最新的表情添加到第一個位置
注:不能僅僅用[emotionsremoveObject:emotion];因為這只是比較內存地址來刪除對象,除非重寫HWEmotion的isEqual方法
問題:之前的做法,每次添加表情的時候先把沙盒中原先保存的表情全部讀進來,再添加,再寫入沙盒,讀寫比較頻繁
解決辦法:將最近使用的表情數組放到內存中
注:由於是類方法,不能使用屬性,可以添加一個全局變量
注:寫字符串、整形等常量的時候建議使用const,不要使用宏!!!
NSString* constname = @"Jack";(const修飾name)
即以後不能在修改name:name= @"Rose";
1> 安全性考慮,比如一個函數中使用const修飾傳遞參數,可以保證在函數中只能讀取參數對應的值,而不能修改
2> 與宏對比,可以節省內存,使用宏會將程序中所有用到宏的地方替換成宏對應變量,每一個變量都是一份臨時內存,而使用全局const常量,可以保證永遠只有一份內存
注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];