Parse Server // Parse SDK // ParseUI // PFQueryTableViewController с разделами // editActionsForRowAtIndexPath

Parse Server: 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/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit/S.7/UIK UITableView.m:1422 2016-08-12 18:14:44.974 myParseCustomLoginTest[54158:729475] * Завершение работы приложения из-за необработанного исключения "NSInternalInconsistencyException", причина: "попытка удалить строку 68 из раздела 0, который содержит только 4 строки до Обновить'

Информация:

0) Если я проведу пальцем по первому разделу, ошибка выдаст.

1) Да, это верно, в моем первом разделе у меня есть 4 строки.

2) Я не могу провести пальцем влево в следующих разделах. Я могу только провести по первому разделу.

3) Сама таблица, разделы и строки в порядке (как исходные данные с Parse Server).

4) Тот же код для editActionsForRowAtIndexPath работает нормально для той же таблицы без разделов.

Код: class MenuSectionedPFQueryTableViewController: PFQueryTableViewController-> Я думаю, что это работает нормально, потому что таблица, разделы и строки в порядке.

расширение MenuSectionedPFQueryTableViewControllernumberOfSectionsInTableView 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 ответов

Другие вопросы по тегам