按下滑动删除按钮时应用程序崩溃

时间:2015-11-25 13:41:41

标签: ios swift uitableview

当我使用UITableViewCellEditingStyle.Delete时,我的应用程序转到top_level_code文件并说Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)

我想当用户在uitableview行向左滑动时显示删除按钮,当他按下它时,应该删除该行。 它可以正常工作一段时间,但很多时候它会崩溃但是当我再次运行应用程序时,该行将被删除。这是我的代码:

var doItList = [String]()

var stared = false

class ViewController: UIViewController, UITableViewDelegate {

@IBOutlet weak var staredBtn: UIButton!

@IBOutlet weak var addDoItField: UITextField!

@IBOutlet weak var doItTableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    if NSUserDefaults.standardUserDefaults().objectForKey("doItList") != nil {

        doItList = NSUserDefaults.standardUserDefaults().objectForKey("doItList") as [String]

    }

}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return doItList.count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")

    cell.textLabel?.text = doItList[indexPath.row]

    return cell

}

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {

    if editingStyle == UITableViewCellEditingStyle.Delete {

        doItList.removeAtIndex(indexPath.row)

        NSUserDefaults.standardUserDefaults().setObject(doItList, forKey: "doItList")

        doItTableView.reloadData()

    }

}

1 个答案:

答案 0 :(得分:0)

这是错误

无法同时满足约束条件。     可能至少下列列表中的一个约束是您不想要的约束。试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果您看到您不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints) (     “”     “”     “”     “” )

将尝试通过违反约束来恢复

在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点,以便在调试器中捕获它。 在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助。 (lldb)