2017-04-14 30 views
5

kullanarak uygulamalar. Bu çerçeveyi test etme sürecinde, Çerçeveyi Realm kullanan bir iOS uygulamasında kullanıyorum. Çerçeve o kendi Diyar oluşturduğundada içeriden Diyar kullanan bir kapalı kaynak Swift çerçeve üzerinde çalışıyorum Diyar

, bu çerçeveye özgü bir Realm.Configuration kullanır. Ana bilgisayar uygulaması, varsayılan Realm yapılandırmasını kullanarak Realm nesnelerini oluşturur. Diyarlar 'ayrı'.

  1. konak uygulaması bir Realm referansı oluşturan, temel veritabanı çerçevesi içindeki tüm özel Diyar Nesne sınıfları için tablolarla biter:

    birkaç sorunlar vardır. Bu, çerçevemizin içsellerine dair bazı bilgileri, çerçevemizi kullanan ve kendi Diyarını yaratan herkese açıklar. Tüm masalar Bütün Diyarlar'da hazırlandı elde Çünkü bir geçiş gerektiğinde

  2. , bir sorun vardır. Çerçevemizin içinde, çalışmaya yönelik bir geçiş sağlayabiliriz, ancak ana makine uygulaması Alan adını oluşturduğunda ve çerçeve iç sınıfları güncellendiğinde, ana makine uygulamasının çalışması için geçiş yoktur ve uygulama bir taşıma hatasıyla kilitlenir.

bir uygulama içinde iki tamamen ayrı krallıkları kullanmak için herhangi bir yolu var mı?

RealmConfiguation'ın objectTypes seçeneğini kullanırken RealM çerçevesi için sınıfların listesini belirtebilirim, ancak bu, çerçevemizin herhangi birinin aynı şeyi yapmasını gerektirir. Bu mantıksız görünüyor, ve yine de bir sorun olmak için 1. izin verir.

cevap

1

Evet, bağımsız bir uygulama kullanımı Realm iki ayrı kütüphaneler/çerçeveler/codebases ve onların modeli tamamen ayrı nesneleri tutmak mümkündür.

Eğer özel kalmasını istiyorum Diyar Object alt sınıflarının bir koleksiyonunuz varsa bunlar otomatik olarak aşağıdaki statik yöntem geçersiz kılma ekleyerek uygulamanın varsayılan şemaya eklenmez, bu kullanıcıları işaretleyebilirsiniz:

public class MyModel: Object { 
    public override class func shouldIncludeInDefaultSchema() -> Bool { 
     return false 
    } 
} 

Bu sınıf, yalnızca bu Realm'nin Configuration nesnesinin objectTypes özelliğinde bildirilmişse, yalnızca Realm veritabanına eklenecektir.

Bu şekilde, kendi Diyar modeli sınıflarına sadece kendi çerçevesi tüm izole edebilir ve ebeveyn uygulaması nesneler içinde, birbirine karışmadan orijinal bağlamda Realm kullanabilirsiniz.

+0

Bu işe yarıyor. Teşekkür ederim! – asutula

+0

Mükemmel! Rica ederim! Bana bildirdiğiniz için teşekkürler! :) – TiM