处理异常时出错,每次在第一次启动后打开应用时,应用都会终止。我的应用程序是一旦启动,使用UI表视图输入数据的应用程序。
有没有办法捕获错误,以便应用程序不会终止?请帮忙。
主视图控制器:
override func viewDidLoad() {
super.viewDidLoad()
firstLaunchOfApp()
}
//MARK: - Check for first launch
func firstLaunchOfApp() {
let launchedBefore = NSUserDefaults.standardUserDefaults().boolForKey("launchedBefore")
if launchedBefore {
print("Not first launch.")
let index = NSIndexPath(forRow: 0, inSection: 0)
tableView.selectRowAtIndexPath(index, animated: false, scrollPosition: .Top)
pushNewValuesToDetail()
}
else {
print("First launch, setting NSUserDefault.")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "launchedBefore")
dispatch_async(dispatch_get_main_queue()) {
self.addNewCourseWork()
}
}
}
XCode消息:
不首先发布。 2016-05-11 16:27:45.530 CWCoreData [96559:855380] ***由于未捕获的异常'NSRangeException'终止应用程序,原因:' - [UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:]:超出边界的行(0)(0)对于第(0)节。'
答案 0 :(得分:1)
如果你想捕获异常,Swift的do
和catch
语句将无济于事,因为它是Objective-C异常。
This answer提供了一个很好的解决方案。
答案 1 :(得分:0)
你的应用程序崩溃了,因为当viewdidload触发时,表尚未填充,因此它们没有要选择的行。尝试在viewdidAppear方法中执行此操作。