[英]Terminating app due to uncaught exception 'NSRangeException' xcode 5
[英]xcode catch exception NSRangeException
我在處理異常時出錯,並且在首次啟動后每次打開應用程序時,該應用程序都會終止。 我的應用程序是啟動后使用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)。”
如果您想捕獲該異常,Swift的do
和catch
語句將無濟於事,因為它是一個Objective-C異常。
這個答案提供了一個很好的解決方案。
您的應用程序崩潰是因為在觸發viewdidload時,表尚未填充,因此沒有行可供選擇。嘗試在viewdidAppear方法中進行操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.