这有点难以解释...
我正在尝试使用SwipeCellKit进行向右滑动以获取tableview来刷新/更新单元格。因此,我复制了我的working(!)downloadChar
函数,以便它再次下载了该特定单元格的JSON数据并进行了更改,因此希望与现有数据进行比较,并使用realm.add(character, update: true)
将其替换为现有数据。 。
我得到这个“ NSInternalInconsistencyException”的问题,原因:“无效的更新:第0节中的行数无效。更新(8)后现有节中包含的行数必须等于。 ..“ 错误。我正在尝试调试,但是,这确实让我失望。所以我一点一点地考虑。
使用断点后,我注意到我的updateChar
函数甚至不下载JSON数据,即使它与我的downloadChar
函数几乎完全相同,除了增加了两个参数之外; charID
和indexPath
。我不知道解决这个问题是否可以解决我的主要问题,但至少,希望我会迈出这一步。
这是我的updateChar
函数。下载JSON数据时,它确实会产生我在调试控制台中获得的正常打印输出。如果需要更多代码,请告诉我。
func updateChar(charName: String, charID: String, indexPath: IndexPath) {
apiCheck = true
var blizzardURL = urlCreator(name: charName, realm: charRealm, fields: "items")
getCharacterData(url: blizzardURL, dataChoice: 0) {(success) -> Void in
blizzardURL = self.urlCreator(name: charName, realm: self.charRealm, fields: "talents")
self.getCharacterData(url: blizzardURL, dataChoice: 1) {(success) -> Void in
blizzardURL = self.urlCreator(name: charName, realm: self.charRealm, fields: "audit")
self.getCharacterData(url: blizzardURL, dataChoice: 2, completion: {(success) -> Void in
if self.apiCheck {
let newChar = CharacterModel()
newChar.charID = charID
newChar.charName = self.tempChar.charName
newChar.charRealm = self.tempChar.charRealm
newChar.lastModified = self.tempChar.lastModified
newChar.charClass = self.tempChar.charClass
newChar.thumbnail = self.tempChar.thumbnail
newChar.averageItemLevelEquipped = self.tempChar.averageItemLevelEquipped
newChar.neckEnchant = self.tempChar.neckEnchant
newChar.backEnchant = self.tempChar.backEnchant
newChar.finger1Enchant = self.tempChar.finger1Enchant
newChar.finger2Enchant = self.tempChar.finger2Enchant
newChar.spec = self.tempChar.spec
newChar.role = self.tempChar.role
newChar.emptySockets = self.tempChar.emptySockets
self.update(character: newChar, indexPath: indexPath)
}
})
}
}
}
执行逐步操作似乎updateChar
被调用,但是它不执行内部的行。我可能错过了一些简单的事情...
任何帮助表示赞赏。