SORU
17 ŞUBAT 2011, PERŞEMBE


Nasıl Çekirdek Veri belirli bir Nesne NUMARASI nesne almak için?

Kolayca Çekirdek Veri bir nesnenin KİMLİĞİ aşağıdaki kodu kullanarak alabilirsiniz:

NSManagedObjectID *moID = [managedObject objectID];

Ancak, bir nesnenin temel veri deposu dışında bir özel nesne KİMLİĞİ vererek almak için bir yolu var mı? Böyle bir NSFetchRequest kullanarak bunu yapabileceğimi de çok iyi biliyorum

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(objectID = %@)", myObjectID];
[fetchRequest setPredicate:predicate];

Ancak, kendi getirme talebinde başlatmak değil bir şekilde yapmak istiyorum. Herhangi bir fikir?

CEVAP
17 ŞUBAT 2011, PERŞEMBE


İstediğiniz:

-(NSManagedObject *)existingObjectWithID:(NSManagedObjectID *)objectID
                                   error:(NSError **)error

Eğer öyle olsaydı zaten bu KİMLİĞİ olan deposundan nesne getirir, ya da yoktur.

(Dikkat edin: bana çelme taktı. bu birbirine benzer görünen adları ile NSManagedObjectContext iki yöntem vardır Onları düz tutmak için, burada ne var:

-(NSManagedObject *)objectWithID:(NSManagedObjectID *)objectID

...sağlanan objectıd kusur bir nesne oluştururolsun ya da olmasınböyle bir nesne aslında mağaza var. Eğer var değil mi, suç nesnenin ilk NSManagedObjectContext ile eklemek sürece başarısız olur yangınlar bir şey insertObject:. Bunun için bulduğum tek kullanım ObjectİDs koruyarak mağaza mağaza nesneleri kopyalama.

-(NSManagedObject *)objectRegisteredForID:(NSManagedObjectID *)objectID

...KİMLİĞİ olan nesne döndürüreğerbu managedObjectContext tarafından dükkana getirilen olmuştur. Eğer herkes bu yöntem yararlı ne olduğunu bilen varsa, yorum lütfen.)

[eta.: İlk yöntem ve diğer ikisi arasındaki bir diğer önemli fark existingObjectWithID:error: hiçbir zaman bir hata verir; senin için her zaman tüm nesne getirir. Eğer yapmaya çalıştığını önlemek (örneğin, çalışan bir pahalı-getir nesne ile büyük bir kabarcık özelliği) olması zeki objectWithID: objectRegisteredForID:, yok yangın hatalar; veya bir düzgün yapılandırılmış getirme isteği.]

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • placeboing

    placeboing

    7 Mart 2006
  • Xbox

    Xbox

    1 Kasım 2005