SORU
4 HAZİRAN 2010, Cuma


Ö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
4 HAZİRAN 2010, Cuma


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".

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Austin Evans

    Austin Evans

    5 AĞUSTOS 2007
  • PoreoticsHD

    PoreoticsHD

    22 NİSAN 2010
  • YouChewBu

    YouChewBu

    26 Ocak 2009