2016-03-24 3 views
1

空のリストでクラッシュするこの小さなコードがありますが、実際にリストがオブジェクトサブクラスから実際にフェッチされたときにうまく動作しますPopContact これはなぜクラッシュするのですか?なぜ空リストにaddNotificationBlockがクラッシュするのですか?

class Item: Object { 

} 
class Container: Object { 
    let items = List<Item>() 

} 

func testRealmListNotification(mContainer: Container?) { 
    let list = mContainer?.items ?? List<Item>() 
    let token = list.addNotificationBlock { (updatedList: List<Item>) ->() in 
     log(updatedList) 
    } 
    //dispose of token later 
} 

答えて

2

通知は、オブジェクトが格納されているレルムの書き込みトランザクションがコミットされた後に送信されますので、まだレルムに追加されていない新しく作成されたオブジェクトは、すべての通知を持っていることはありません。何もしないで静かに行うのではなく、addNotificationBlock()は、動作しないことを警告する例外をスローします。

+0

私はそれを得るが、なぜ機能を投げとしてマークしないのだろうか?現在の公用関数addNotificationBlock(ブロック:(RealmSwift.List ) - >()) - > RealmSwift.NotificationToken –

+0

猶予期間の例外は、前提条件違反ではなく、ランタイムエラーに使用されます。 –

+0

大丈夫、ありがとう@トーマス –

関連する問題