解析服务器//解析SDK // ParseUI // PFQueryTableViewController包含部分// editActionsForRowAtIndexPath

时间:2016-08-12 16:40:47

标签: swift parse-platform parse-server pfquery parseui

解析服务器:2.2.17(自托管)

Parse-SDK-iOS-OSX:1.14.2

ParseUI-iOS版本:1.2.0

Xcode 7.3.1,Swift

我是IOS编程的新手(20周)并构建了一个有趣和学习的应用程序。

在很多带有节的TableViewControllers中,我喜欢调用editActionsForRowAtIndexPath。向左滑动时会抛出错误:

2016-08-12 18:14:44.967 myParseCustomLoginTest [54158:729475] *断言失败 - [UITableView _endCellAnimationsWithContext:],/ BuildRoot / Library / Cache / com.apple.xbs / Source / UIKit_Sim / UIKit的-3512.60.7 / UITableView.m:1422 2016-08-12 18:14:44.974 myParseCustomLoginTest [54158:729475] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'尝试从更新前仅包含4行的第0部分删除第68行“

的信息:

0)如果我在第一部分上滑动,则会抛出错误。

1)是的,这是正确的,在我的第一部分中,我有4行。

2)我无法在以下部分向左滑动。我只能在第一部分上滑动。

3)表,节和行本身都很好(就像来自Parse Server的源数据一样)。

4)editActionsForRowAtIndexPath的相同代码适用于没有节的同一个表。

代码:class MenuSectionedPFQueryTableViewController: PFQueryTableViewController - >我认为它工作正常,因为表,节和行都很好。

扩展名MenuSectionedPFQueryTableViewController numberOfSectionsInTableView numberOfRowsInSection titleForHeaderInSection cellForRowAtIndexPath - >我认为它工作得很好,因为表,节和行都很好。

扩展名MenuSectionedPFQueryTableViewController 我有这段代码:

override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool{
    return indexPath.section == 0 ? true : false
}

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

    // Add to diary slider
    let shareAction = UITableViewRowAction(style: .Normal, title: "Add to diary") { (action: UITableViewRowAction, indexPath: NSIndexPath) in
        // create menuItem object
        let menuItem = self.objects![indexPath.row]

        // create menu object
        let menuObject = PFObject(className: "ffdUserDiary")

        // reference menu to pointer ffdDB2Pointer
        let ex = PFObject(className: "ffdDB")
        ex.objectId = menuItem.objectId
        print(menuItem.objectId)
        menuObject.setObject(ex, forKey: "ffdDBPointer")

        // reference current user to pointer userPointer
        menuObject["userPointer"] = PFUser.currentUser()

        // add x + y to diary
        menuObject["x"] = menuItem.objectForKey("x")
        menuObject["y"] = menuItem.objectForKey("y")

        // save menuObject
        // menuObject.saveEventually()
        menuObject.saveInBackgroundWithBlock { (success, error) in
            if let error = error {
                print("error: \(error.localizedDescription)")
            } else {
                print("success: \(success)")
            }
        }

        // tableView.reloadData()
    }
    shareAction.backgroundColor = UIColor.redColor()
    return [shareAction]
}

我认为indexPath出错,但无法解决。有什么想法吗?

0 个答案:

没有答案