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

  • grickle

    grickle

    22 AĞUSTOS 2006
  • OVERWERK

    OVERWERK

    6 Temmuz 2010
  • RaquelGamesBR

    RaquelGamesB

    20 HAZİRAN 2009