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

  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010
  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012