2011-01-18 19 views
5

İki varlığım Kitap ve Paketlerim var. Bir kitap, bir ya da daha fazla kümeye ait olamaz. Bu yüzden bu varlıklar arasında iki yönlü bir çok ilişkisi var.iPhone - çekirdek verileri NSSet ilişki

Bu ilişkinin değerini Kitap bölümünde ayarlamak üzereyim. nitelik düzenli biri olsaydım ben bir kitap için başlık ayarlamak isteseydik

, ben sadece

aBook.title = @"this is my title"; 

böyle bir şey yapsın. Ancak bu, iki yönlü bir çok ilişki olduğu için, çekirdek veriler bir NSSet özniteliği olduğunu söylüyor.

Sorum şu: Bu öznitelik değerlerini nasıl ayarlayabilirim?

İlk önce normal bir NSSet olduğunu düşündüm. Yani, ürün ben basit okuduktan sonra

NSSet *aSet = Book.fromBundle; 

yaptım ama benim dehşet için ASEt sıfır

yüzden ben yanlışlıkla ayarlayarak düşündüm nesneleri içeriyordu. Ben daha önce
Book.fromBundle = [NSSet setWithObject:aBundle]; 

(evet, tüm değişiklikler veritabanına kaydedildi)

bir şey mi kaçırdım yapıyor kurdu? Teşekkürler

cevap

1

Bu normal bir ayardır, ancak temel veriler doğrudan yeni bir kümeye (bu nedenle) atanmasını öneriyor. Özel bir sınıf kullanıyorsanız, standart uygulama kullanmanız için addFromBundleObject: ve removeFromBundleObject: yöntemlerini içerir. Özel bir sınıf kullanmıyorsanız veya bu yöntemleri uygulamamayı seçerseniz, değiştirebileceğiniz bir ayar elde etmek için mutableSetValueForKey: yöntemini kullanabilirsiniz.

NSMutableSet *mutableSet = [book mutableSetValueForKey:@"fromBundle"]; 
[mutableSet addObject:aBundle]; 
+0

Teşekkürler. Uygulama artık çöküyor değil, ancak bu komutu bir kitaba farklı gruplar eklemek için birkaç kez kullandıktan sonra, kitap sadece sonuncuyu saklıyor. Veritabanını harici bir uygulamada inceledim çünkü paket nesnesinin fromBundle'da olup olmadığını kontrol etmek ve görmek için istek üzerine nasıl bir yükleme yapılacağını henüz anlamadım. Çok fazla bir ilişkide [NSPredicate predicateWithFormat: @ ”[fromBundle ==% @]”, aBundle] kullanırdım, fakat bunu bir NSSet'te nasıl yapacağım konusunda hiçbir fikrim yok. Takdir ediyorum (eğer çok fazla sorun yoksa): D – SpaceDog

+0

Bire çok ilişkiler temelde çoktan çoğa ilişkiler ile aynıdır. Her ikisi de NSSets olarak temsil edilir. Tek fark, ters ilişkinin nasıl ayarlandığıdır. Bire-bir ilişki için yapacağın aynı şeyi yapabilmelisin. – ughoavgfhw

+0

teşekkürler !!!!!!!!!!!! – SpaceDog

İlgili konular