каков "правильный" способ использования NSManagedObjectContext objectWithID:

состояние документации:

... Этот метод всегда возвращает объект. Данные в постоянном хранилище представленный objectID предполагается существует - если это не так, возвращается объект выдает исключение, когда вы доступ к любому свойству (то есть, когда неисправен). Преимущество этого поведение заключается в том, что это позволяет вам создавать и использовать ошибки, а затем создавать нижележащие строки позже или в отдельном context.

и в примере приложения Apple «Core Recipes» результат метода используется для заполнения NSFetchRequest, а затем используется результат запроса с комментариями на этот счет:

 // first get the object into the context
 Recipe *recipeFault = (Recipe *)[context objectWithID:objectID];

 // this only creates a fault, which may NOT resolve to an object (for example, if the ID is for
 // an objec that has been deleted already):  create a fetch request to get the object for real
 NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
 [request setEntity: [NSEntityDescription entityForName:@"Recipe" inManagedObjectContext:context]];
 NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(self == %@)", recipeFault];
                    [request setPredicate: predicate];

Я видел много примеров (другие code и apple 'iClass'), где результат objectWithID используется напрямую - это означает, что его свойства доступны и легко обрабатываются.

Если objectWithID всегда должен быть рассматривается как объект типа «возможно-это-существует»?

Я спрашиваю, потому что я только что столкнулся с этим и не делал выборки против его существования.

6
задан gklka 23 July 2013 в 07:28
поделиться