在做智能客服模塊功能時,開發參考了TLChat這個第三方庫,
在與客服后臺交互時發現,使用
[self.data addObject:message]
向NSMutableArray添加聊天回復的數據時,
發現如果客服后臺回復非常快的時候,NSMutableArray中前一個數據會被后一個數據所覆蓋。
最終使用深拷貝解決了這個問題。將此方法修改為
[self.data addObject:[message mutableCopy]];
對于集合對象
對于不可變的集合對象,copy 是淺拷貝,mutableCopy 是單層深拷貝。
對于可變的集合對象,無論 copy 或者 mutableCopy 都是單層深拷貝。
值得注意的是
copy需要實現NSCopying協議,然后實現以下方法,否則copy會crash
mutableCopy時,需要實現NSMutableCopying協議,否則mutableCopy會crash
其余在此項目中遇到問題:
Xcode9.2運行iOS11系統時,下方鍵盤彈出導致statusBar顏色變化