当我使用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()
}
}
答案 0 :(得分:0)
这是错误
无法同时满足约束条件。 可能至少下列列表中的一个约束是您不想要的约束。试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果您看到您不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints) ( “” “” “” “” )
将尝试通过违反约束来恢复
在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点,以便在调试器中捕获它。 在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助。 (lldb)