Özel Çekirdek-Veri yöntemleri ayarlayıcı
NSManagedObject
benim alt sınıfta bir alan için özel bir ayarlayıcı yöntemi (foo
deriz) yazmam gerekiyor. foo
veri modelinde tanımlanır ve böyle büyük mükafat @property
@dynamic
otomatik alanlar var .h ve .m dosyaları sırasıyla.
Eğer yazarsam benim ayarlayıcı bu gibi:
- (void)setFoo: (NSObject *)inFoo {
[super setFoo: inFoo];
[self updateStuff];
}
sonra bir derleyici çağrı 9 ** için Uyarı alıyorum.
Eğer bunu yaparsam alternatif olarak,:
- (void)setFoo: (NSObject *)inFoo {
[super setValue: inFoo forKey: inFoo];
[self updateStuff];
}
o zaman ben sonsuz bir döngü içinde bitirmek.
NSManagedObject bir alt sınıfı için özel bir pasör yazmak için doğru yaklaşım nedir?
CEVAP
the documentation göre olur:
- (void) setFoo:(NSObject *)inFoo {
[self willChangeValueForKey:@"foo"];
[self setPrimitiveValue:inFoo forKey:@"foo"];
[self didChangeValueForKey:@"foo"];
}
Bu, tabii ki, NSManagedObjects
sadece nitelik olarakNSNumbers
, NSDates
, NSDatas
, NSStrings
istediği gerçeğini görmezden geliyor.
Ancak, bu en iyi yaklaşım olmayabilir. foo
özellik değeri değiştiğinde bir şeyler olmasını istiyorsanız bu yana, neden sadece Key Value Observing ile gözlem değil mi? Bu durumda, sanki "KVO gitmek için yol".
Veri kaynağı tableView bir hücre dönme...
Çekirdek Veri parçacığı uygulama multi...
Çekirdek Veri: Hızlı bir işletmenin tü...
Her Çekirdek Veri İlişki Ters mi olmal...
iPhone: Çekirdek Veri içine boolean Ka...