2017-05-07 28 views
0

當使用List作爲我的數據源作爲我的tableView時,我總是收到錯誤fatal error: unexpectedly found nil while unwrapping an Optional value將結果轉換爲UITableView中的dataSource的列表時出現錯誤

我知道我可以使用Results我的數據源,其實我嘗試過了,它工作得很好,但我不希望顯示在我的TableView中的第一項,這就是爲什麼我轉換ResultsList到能夠從Results中刪除它,而無需將其從Realm中刪除。

我在這裏錯過了什麼?

這裏是代碼...

var lists : List<ItemList>! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    updateLists() 
} 

func updateLists(){ 
    let allLists = realm.objects(ItemList.self) 

    // Convert Results to List to be able to remove first item 
    var lists: List = List(allLists) 
    lists.remove(at: 0) 
} 


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return lists.count // error points here 
} 

它不應該是零,這裏是輸出... print("\(realm.objects(ItemList.self))")

Results<ItemList> (
    [0] ItemList { 
     listName = List One; 
     createdAt = 2017-05-06 01:12:47 +0000; 
     items = RLMArray <0x6180002e4200> (
      [0] Item { 
       productName = Bananas; 
       createdAt = 2017-05-06 18:23:59 +0000; 
      }, 
      [1] Item { 
       productName = Grapes; 
       createdAt = 2017-05-07 11:37:33 +0000; 
      } 
     ); 
    }, 
    [1] ItemList { 
     listName = List Two; 
     createdAt = 2017-05-06 18:16:14 +0000; 
     items = RLMArray <0x6180002e4180> (
      [0] Item { 
       productName = Apples; 
       createdAt = 2017-05-06 18:16:14 +0000; 
      }, 
      [1] Item { 
       productName = Oranges; 
       createdAt = 2017-05-06 18:16:14 +0000; 
      } 
     ); 
    } 
) 

ERROR:指向numberOfRowsInSection方法

fatal error: unexpectedly found nil while unwrapping an Optional value

回答

1

您在updateLists()方法內實例化了列表數組的另一個實例。 嘗試像這樣修復:

// Convert Results to List to be able to remove first item 
var lists: List = List(allLists) 
self.lists = lists 
self.lists.remove(at: 0) 
+0

哦,天哪,我簡直不敢相信。對於這個愚蠢的問題抱歉。謝謝你指出。 –

相關問題