TableViewのデータを削除しようとすると、何のエラーも表示せずにアプリが動かなくなります。下記のコードのどこがおかしいでしょうか?個人的にオプショナルに関する部分が怪しいかと思っているのですが、具体的にわかりません。。。どなたか不具合の原因が分かる方がいれば教えていただきたいです。すみませんが、よろしくお願いします。

DataViewControllerクラス

var nounData: NSMutableArray = NSMutableArray()
let dbhelper = DatabaseHelper()
nounData.addObjectsFromArray(dbhelper.outputWord("AAA"))    //データベースにあるString型の値が入る

func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!){            
    if(editingStyle == UITableViewCellEditingStyle.Delete){
        removeData("AAA", wordData: nounData, indexPath: indexPath.row)
    }
}

func removeData(speech: String, wordData: NSMutableArray, indexPath: Int) {
    let dbhelper = DatabaseHelper()
    dbhelper.removeWord(speech, word: (wordData.objectAtIndex(indexPath) as? String)!)
    wordData.removeObjectAtIndex(indexPath)
    self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)
}

DatabaseHelperクラス

func removeWord(speech: String, word: Optional<String>) {
        let realm = RLMRealm.defaultRealm()
        realm.transactionWithBlock( { () -> Void in
        realm.deleteObjects(Word.objectsWhere("speech == %@ AND word == %@", speech, word!))
    })
}