2016-04-10 11 views
1

XCode 7'deki grafik düzenleyicide soyut varlıkların görünmesini engellemenin bir yolu var mı? Bütün varlıklarm süper soyut varlıklardan miras alırlar ve grafikler karmaşıktır çünkü soyut varlıklar, grafikleri, çocuk sınıflarına kalıtımı ifade eden oklarla gösterirler. Bu değiştirilebilir mi?XCode: Çekirdek Veriler grafiğinden soyut varlıkları dışla

+0

Sanırım öyle değil. Gerçek işlevsellik açısından size sunan bu soyut varlıklar nelerdir? – Wain

+0

Teşekkür ederim. Soyut varlıklar, çocuk nitelikleriyle paylaşılan nitelikleri sağlar. NSManagedObject alt sınıfları, bu türdeki tüm varlıkların ortak işlevlerine yardımcı olmak için eklediğim kolaylık yöntemlerine de sahiptir. – mashers

+1

@mashers Öğe mirasını almadan sınıf mirasını kullanmaya devam edebilirsiniz. Model editöründe, her bir varlığın ortak özelliklerini (ve soyut varlığı modellemeyin) dahil edersiniz, ancak sınıf tanımında, her bir alt sınıfın soyut varlık sınıfından miras kalmasını sağlarsınız. – pbasdf

cevap

1

Hayır, bu değiştirilemez. Çizimi sadece başka bir programda yeniden çizebilirsiniz.

Ancak, bu sorun başka bir soruna işaret eder: varlıklarınızın çoğunun bir süper ana varlıktan devralması durumunda bunların hepsinin aynı SQLite tablosu'da saklanacağının farkında olmanız gerekir. Bu, potansiyel olarak performans sorunlarına yol açabilir ve her durumda arka plandaki ilişkisel bir veritabanı tarafından temsil edilen nesne grafiğine sahip olmanın sağladığı verimliliklerin çoğunu ortadan kaldırabilir.

Tüm varlıklarınızda sync alanı varsa, bu özelliği tüm varlıklara eklemekten veya senkronizasyon durumunu takip etmek için başka bir şema bulmaktan daha iyi olursunuz.

+0

Açıklama için teşekkür ederiz. İlişkileri takip ederek şemayı elle çizdim. Soyut bir varlık sınıfından miras alan varlıkların aynı tabloda saklanacağı konusunda hiçbir fikrim yoktu. Bu stratejiyi, tüm varlıkları basitçe kopyalamak ve varlıkları bir parametre olarak ele almak için elverişlilik yöntemlerimi değiştirmek (NSManagedObject sublcass üzerinde yöntemler olmaktan ve metodlar içinde 'self'i kullanmaktan ziyade) yeniden gözden geçireceğim. Ancak, performans şu an için mükemmel görünüyor, bu yüzden kulakla oynayacağım. – mashers

+0

Apple her zaman kendi uygulamalarında devralma kullan, birden fazla varlığın tek bir getiriden dönmesine izin verir, ör. Notes'ta, kapsayıcı ve güçlü öğeler olan ana varlıklarını getirerek hesapları ve klasörleri getirir. Modelinizi ilişkisel bir veritabanı gibi düşünmekten ziyade kullanıcı arayüzünüzde nasıl gösterileceğine göre tasarlayın. – malhal

+0

@malhal Peki, evet, ama Notlar uygulaması iyi bir örnek değil çünkü çok az girdiye sahip ve şema iyi ölçeklenmeyecek. Hiç kimsenin 100.000 notu olmayacak, muhtemelen 100'lü bile olmayacak. Bu söylenen, bu tradeoffları göstermek için mükemmel bir örnektir. – Mundi

İlgili konular