技术:XCode 6,Swift,iOS 8.1.3,Maverick 10.9.5
当我使用模拟器时,它工作正常,从不出错。当我将应用程序下载到手机时,当我尝试连续删除一些项目时,它会出错。我还试过转储所有数据并进行干净运行,但我的实际手机仍然出现错误。一位朋友在他的iPad上运行它,他可以毫无错误地删除没有问题的东西。
func delete(index: Int) {
searches.removeValueForKey(tags[index]) /** It errors here
}
错误消息是EXC_BAD_ACCESS(代码= 1,地址= 0x20)。
删除项目会导致应用程序崩溃,但是一旦我将应用程序重新启动/再次运行,我就可以执行删除操作而不会出现错误。如果我尝试删除另一个项目,它会崩溃,但我可以立即重新启动应用程序,我可以执行删除操作而不会出错。
此问题是否与我使用的软件版本有关?别的什么?谢谢你的帮助。
这是我打电话的时候:
override func tableView(tableView: UITableView,
commitEditingStyle editingStyle: UITableViewCellEditingStyle,
forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
model.delete(indexPath.row)
// remove UITableView row
tableView.deleteRowsAtIndexPaths(
[indexPath], withRowAnimation: .Fade)
}
}
我如何创建搜索数据:
private var searches: [String: String] = [:]
if let pairs = userDefaults.dictionaryForKey(pairsKey) {
self.searches = pairs as [String : String]
}
func tagAtIndex(index: Int) -> String {
return tags[index]
}
func queryForTag(tag: String) -> String? {
return searches[tag]
}
func queryForTagAtIndex(index: Int) -> String? {
return searches[tags[index]]
}