解析服务器: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出错,但无法解决。有什么想法吗?