在做智能客服模塊功能時,開發(fā)參考了TLChat這個第三方庫,
在與客服后臺交互時發(fā)現(xiàn),使用
[self.data addObject:message]
向NSMutableArray添加聊天回復(fù)的數(shù)據(jù)時,
發(fā)現(xiàn)如果客服后臺回復(fù)非??斓臅r候,NSMutableArray中前一個數(shù)據(jù)會被后一個數(shù)據(jù)所覆蓋。
最終使用深拷貝解決了這個問題。將此方法修改為
[self.data addObject:[message mutableCopy]];
對于集合對象
對于不可變的集合對象,copy 是淺拷貝,mutableCopy 是單層深拷貝。
對于可變的集合對象,無論 copy 或者 mutableCopy 都是單層深拷貝。
值得注意的是
copy需要實(shí)現(xiàn)NSCopying協(xié)議,然后實(shí)現(xiàn)以下方法,否則copy會crash
mutableCopy時,需要實(shí)現(xiàn)NSMutableCopying協(xié)議,否則mutableCopy會crash
其余在此項目中遇到問題:
Xcode9.2運(yùn)行iOS11系統(tǒng)時,下方鍵盤彈出導(dǎo)致statusBar顏色變化
聊天界面調(diào)用訊飛語音轉(zhuǎn)換為文字,文字在cell上不顯示