2016-04-07 19 views
2

Realm'e yeni yaşıyorum, daha önce MagicalRecord kullanıyordum.Realm Swift'de getter ve ayarlayıcı nasıl özelleştirilir?

MagicalRecord'da, içe aktarma işlevini kullanabilir veya hatta birden çok aday adı için bazı mappingKey'leri ayarlayabilirim.

Benim Realm nesnesinin özelliklerinden bazılarını özelleştirmek istiyorum.

İstediğim gibi görünen DynamicObject buldum. Ancak, nasıl kullanılacağını bilmiyorum.

cevap

2

Geticilerinizi ve ayarlayıcılarınızı Realm Swift ile özelleştirmek için, basit bir depolanmış özellik tanımlamanız gerekir. Ardından, bu özelliği aşağıda belirttiğiniz gibi özel ayarlayıcılar ve alıcılar ile tanımladığınız başka bir adrese erişebilirsiniz.

public class Foo : Object { 
    private dynamic var _bar: Int 

    public var bar: Int { 
     get { 
      return _bar + 1 
     } 
     set { 
      _bar = newValue - 1 
     } 
    } 
} 

Not olduğunu kullanılarak Swift adlı beklediğiniz gibi Diyar Swift ile willSet veya didSet çalışmayabilir. Bunlar, tek başına bağımsız nesneler için tetiklenir. Bir nesneyi sürdürdüğünüzde veya kalıcı bir izin aldığınızda, tüm alıcılar ve ayarlayıcılar kalıcı değerlere doğrudan erişim için geçersiz kılınır. Kullanmak istediğiniz şey bu değildir. Bu, nesne şemanız üzerinde güçlü garantilerin olmadığı ve kendiniz oluşturmadığınız yapısal olmayan veri veya veritabanlarıyla uğraşmanız gereken kullanım durumları için tasarlanmıştır.

İlgili konular