几乎相同的函数不会调用JSON

时间:2018-07-30 06:20:14

标签: ios swift xcode

这有点难以解释...

我正在尝试使用SwipeCellKit进行向右滑动以获取tableview来刷新/更新单元格。因此,我复制了我的working(!)downloadChar函数,以便它再次下载了该特定单元格的JSON数据并进行了更改,因此希望与现有数据进行比较,并使用realm.add(character, update: true)将其替换为现有数据。 。

我得到这个“ NSInternalInconsistencyException”的问题,原因:“无效的更新:第0节中的行数无效。更新(8)后现有节中包含的行数必须等于。 ..“ 错误。我正在尝试调试,但是,这确实让我失望。所以我一点一点地考虑。

使用断点后,我注意到我的updateChar函数甚至不下载JSON数据,即使它与我的downloadChar函数几乎完全相同,除了增加了两个参数之外; charIDindexPath。我不知道解决这个问题是否可以解决我的主要问题,但至少,希望我会迈出这一步。

这是我的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被调用,但是它不执行内部的行。我可能错过了一些简单的事情...

任何帮助表示赞赏。

0 个答案:

没有答案