2016-03-24 13 views
1

Boş bir listede kilitlenen bu küçük kodu kullanıyorum, ancak liste gerçekten bir Nesne alt sınıfından alındığında iyi çalışıyor PopContact Neden bunun çöküşüne dair bir fikriniz var mı?addNotificationBlock neden boş bir listede kilitleniyor?

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 
} 

cevap

2

Bildirimler bir nesne kararlıdır bulunan, bu nedenle henüz Realm eklenmemiş yeni oluşturulan nesne Bildiriminiz asla Bölge için bir yazma işlemden sonra gönderilir. Sessizce hiçbir şey yapmamak yerine, addNotificationBlock(), işe yaramayacağını bildirmek için bir istisna atar.

+0

Bunu anlıyorum, ancak işlevi neden atma olarak işaretlemiyorsunuz? Şu anda onun public func addNotificationBlock (blok: (RealmSwift.List ) ->()) -> RealmSwift.NotificationToken –

+0

Swift istisnalar çalışma zamanı hataları, önkoşul ihlalleri için kullanılır. –

+0

tamam, teşekkürler @Tmas –