iOS NSMutableArray使用addObject:方法時數(shù)據(jù)被覆蓋

在做智能客服模塊功能時,開發(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上不顯示

iOS聊天界面后臺數(shù)據(jù)發(fā)送過快,導(dǎo)致展示cell的frame沒有重新計算

iOS向后臺發(fā)送圖片,圖片被翻轉(zhuǎn)以及圖片過大,發(fā)送緩慢問題的解決

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容