     }
     
     @objc func ignoreTopicHandler(_ topicId:String) {
-        guard let index = self.topicList?.firstIndex(where: {$0.topicId == topicId }) else  {
+        guard let index = self.topicList.firstIndex(where: {$0.topicId == topicId }) else  {
             return
         }
         
         //看当前忽略的cell 是否在可视列表里
         let indexPaths = self.tableView.indexPathsForVisibleRows
-        let visibleIndex =  indexPaths?.firstIndex(where: {($0 as IndexPath).row == index})
-        
-        self.topicList?.remove(at: index)
+        let visibleIndex = indexPaths?.firstIndex(where: {($0 as IndexPath).row == index})
+        
+        self.topicList.remove(at: index)
         //如果不在可视列表，则直接reloadData 就可以
         if visibleIndex == nil {
             self.tableView.reloadData()

        
        //如果在可视列表，则动画删除它
        self.tableView.beginUpdates()
        
        self.tableView.deleteRows(at: [IndexPath(row: index, section: 0)], with: .fade)
        
        self.tableView.endUpdates()
        


//MARK: - TableViewDataSource
extension HomeViewController:UITableViewDataSource,UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return topicList.count;
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = getCell(tableView, cell: HomeTopicListTableViewCell.self, indexPath: indexPath);
        cell.bind(self.topicList[indexPath.row]);
        return cell;
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let item = self.topicList[indexPath.row]
        
        if let id = item.topicId {
            let topicDetailController = TopicDetailViewController();
