簡體   English   中英

xcode捕獲異常NSRangeException

[英]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的docatch語句將無濟於事,因為它是一個Objective-C異常。

這個答案提供了一個很好的解決方案。

您的應用程序崩潰是因為在觸發viewdidload時,表尚未填充,因此沒有行可供選擇。嘗試在viewdidAppear方法中進行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM