我得到了例外:
無效更新:無效的節數。更新后表視圖中包含的節數(2)必須等于更新前表視圖中包含的節數(1),加上或減去插入或洗掉的節數(1插入,1已洗掉)。
這就是我的節數功能的樣子。
func numberOfSections(in tavleView: UITableView) -> Int {
let someArray = someFunctionToRetrieveArrayFromUserDefaults()
return someArray.count
}
該陣列是從 UserDefaults 檢索的解碼陣列。每次添加新值時,都會將編碼陣列寫入 UserDefaults,因此它始終是最新的。
任何人都可以幫助澄清例外以及我做錯了什么嗎?
uj5u.com熱心網友回復:
如前所述,插入 (1) 洗掉 (1) 的數量為 1 - 1 = 0,而您回傳的值為 2(someArray.count 為 2)。你用過 peformBatch 嗎?插入/洗掉行?
為什么會這樣?從您提供的非常短的代碼示例中很難知道,我假設您的陣列不是執行緒安全的(您已經提到從 UserDefaults 解碼),因此在呼叫 numberOfSections 時,資料尚未同步。
嘗試制作一個不訪問 UserDefaults 的更簡單的 someArray,并使您的代碼運行而不會崩潰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415447.html
標籤:
上一篇:使字串中的整數變為粗體-快速
