Как использовать ManagedObjectID правильный путь?

То, что я пробую, является этим:

1) Создайте новый объект manged

2) Доберитесь это - временный идентификатор с [myMO objectID];

3) Преобразуйте тот идентификатор в NSURL, таким образом, я могу сохранить его для дальнейшего использования:

NSManagedObjectID *moID = [myMO objectID];
NSURL *url = [moID URIRepresentation];

4) Сохраните контекст управляемого объекта

5) Некоторое время спустя, выборка, которые возражают использованию NSURL как идентификатор

NSManagedObjectID *moID = [[context persistentStoreCoordinator] managedObjectIDForURIRepresentation:url];

И угадайте что: Это не работает. Я возвращаю пусто-глупый объект от

NSManagedObject *myOldMo = [context existingObjectWithID: moID error:&error];

Но... поскольку я сказал..., что идентификатор является временным при создании управляемого объекта. Таким образом, это имеет смысл, почему это не работает вообще. Я должен сначала сохранить контекст, и затем я получаю persistet идентификатор. Реальный.Правильно?

Таким образом, это - способ пойти?

1) Создайте управляемый объект

2) Сохраните контекст

3) Получите идентификатор как NSURL

4) любое время спустя, например, в Ваш следующий день рождения, получите доступ к управляемому объекту с NSURL ;-)

Я пробую к мечте о NSManagedObjectID как идентификатор DB, который я могу записать на некотором желтом листе postIt и связующем звене на середине моего монитора, таким образом, я вернулся к нему после ланча. Вы знаете..., по крайней мере, как в былые времена, где мы использовали базы данных по telnet и выполнили команды SQL вручную для запросов информации для заказа и материала как этот. Идентификатор был самой важной и значительной вещью все время.

Но Базовые Данные имеют эту несколько странную вещь NSManagedObjectID.

Каковы Ваши секретные стратегии? Вы на самом деле распознаете много вариантов использования, где Вам был бы нужен тот NSManagedObjectID? Или то, что что-то я мог легко забыть без боли впоследствии?

6
задан dontWatchMyProfile 10 June 2010 в 09:46
поделиться