2015-09-28 20 views
0

我想加載MyChatController在另一個控制器與斯威夫特2.此代碼在Swift 1.2中很好地工作,但更新到Xcode 7後,我的應用程序崩潰與以下錯誤:實例的ViewController給出的錯誤「發現零,同時展開一個可選值」

fatal error: unexpectedly found nil while unwrapping an Optional value

有沒有人知道如何解決這個問題在Swift 2中?

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 


    let chatController: MyChatController = MyChatController() 

    chatController.opponentImage = UIImage(named: "User") 
    chatController.title = "My Chat" 

    let helloWorld = ChatMessage(content: "Hello....!!", sentBy: .User) 
    chatController.messages = [helloWorld] 
    chatController.delegate = self 
    chatController.hidesBottomBarWhenPushed = true 

    self.navigationController?.pushViewController(chatController, animated: false) 

    } 
+0

不知道,但你可以用這種語法爭取你讓chatController:MyChatController = MyChatController()! self.navigationController!.pushViewController(chatController,animated:false) –

+1

究竟是什麼情況發生了這種情況? – Nishant

+0

我也試過所有可能的方式,但它不工作.. @ @ mrunal thanki – Princess

回答

0

我已經通過你的代碼。 有一個錯誤。請通過以下步驟。

  1. 轉到StretchyTextView中稱爲align的方法。
  2. 在這個方法中你試圖解開nil(self.selectedTextRange?.end)!.最初選定的文字範圍將爲零。
  3. 所以在方法開始返回時,如果self.selectedTextRange爲零。

    FUNC對齊(){

    if self.selectedTextRange == nil { 
        return 
    } 
    
    let caretRect: CGRect = self.caretRectForPosition(self.selectedTextRange!.end) 
    
    let topOfLine = CGRectGetMinY(caretRect) 
    let bottomOfLine = CGRectGetMaxY(caretRect) 
    
    let contentOffsetTop = self.contentOffset.y 
    let bottomOfVisibleTextArea = contentOffsetTop + CGRectGetHeight(self.bounds) 
    
    /* 
    If the caretHeight and the inset padding is greater than the total bounds then we are on the first line and aligning will cause bouncing. 
    */ 
    
    let caretHeightPlusInsets = CGRectGetHeight(caretRect) + self.textContainerInset.top + self.textContainerInset.bottom 
    if caretHeightPlusInsets < CGRectGetHeight(self.bounds) { 
        var overflow: CGFloat = 0.0 
        if topOfLine < contentOffsetTop + self.textContainerInset.top { 
         overflow = topOfLine - contentOffsetTop - self.textContainerInset.top 
        } else if bottomOfLine > bottomOfVisibleTextArea - self.textContainerInset.bottom { 
         overflow = (bottomOfLine - bottomOfVisibleTextArea) + self.textContainerInset.bottom 
        } 
        self.contentOffset.y += overflow 
    } 
    

    }

+0

對不起,但它不工作@Sridhara – Princess

相關問題