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

  • CodingMadeEasy

    CodingMadeEa

    25 EYLÜL 2010
  • Hot For Nutrition

    Hot For Nutr

    26 ŞUBAT 2007
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007