1

解析サーバー: 2.2.17 (自己ホスト型)

解析-SDK-iOS-OSX: 1.14.2

ParseUI-iOS バージョン: 1.2.0

Xcode 7.3.1、スウィフト

私は IOS プログラミング (20 週間) の初心者で、楽しみと学習のためにアプリを作成しています。

セクションを持つ多くの TableViewController の 1 つで、editActionsForRowAtIndexPath を呼び出すのが好きです。左にスワイプすると、エラーがスローされます。

2016-08-12 18:14:44.967 myParseCustomLoginTest[54158:729475] * -[UITableView _endCellAnimationsWithContext:]、/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/ でのアサーションの失敗UITableView.m:1422 2016-08-12 18:14:44.974 myParseCustomLoginTest[54158:729475] *キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。アップデート'

情報:

0) 最初のセクションをスワイプすると、エラーがスローされます。

1) はい、そうです。最初のセクションには 4 つの行があります。

2) 次のセクションで左にスワイプできません。スワイプできるのは最初のセクションだけです。

3) テーブル、セクション、および行自体は問題ありません (Parse Server からのソース データのように)。

4) editActionsForRowAtIndexPath の同じコードは、セクションのない同じテーブルに対して正常に機能しています。

コード: class MenuSectionedPFQueryTableViewController: PFQueryTableViewController -> テーブル、セクション、および行が正常であるため、正常に動作していると思います。

extension 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 のエラーだと思いますが、修正できません。何か案は?

4

0 に答える 0