отслеживание доступа к объектам в CoreData через objectID? - PullRequest
1 голос
/ 28 октября 2010

Я хочу иметь таблицу в CoreData, которая содержит список других объектов CoreData, к которым я обращался, например, у меня есть Клиенты, и я хочу таблицу RecentClients, которая просто содержит этот список и дату, к которой они были получены.

Могу ли я сохранить objectID и затем сделать запрос на выборку на основании этого?

EDIT: Смотрите ответ Бена ниже и затем идите сюда: http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html

Ответы [ 3 ]

4 голосов
/ 28 октября 2010

Вы захотите преобразовать NSManagedObjectID в строку, вызвав его метод -URIRepresentation. Затем вы можете преобразовать строку обратно в NSManagedObjectID, используя -managedObjectIDForURIRepresentation NSPersistentStore: метод.

Если вы храните строки, вы должны иметь возможность делать то, что вы описываете, хотя вы не будете использовать запрос на выборку; вы будете использовать - [NSManagedObjectContext objectWithID:]

2 голосов
/ 28 октября 2010

Как вы планируете хранить дату доступа? Если вы сделаете его атрибутом вашей клиентской сущности, вы можете увеличивать его каждый раз, когда к объекту осуществляется доступ, а затем использовать NSFetchedResultsController, который выбирает клиентов, упорядоченных по дате доступа. Недостатком является, конечно, то, что вы изменяете экземпляр каждый раз, когда получаете к нему доступ, что может быть не идеально.

0 голосов
/ 28 октября 2010

Вы можете просто создать RecentClients как другую сущность в вашей модели базовых данных.Тогда он будет иметь отношения один-ко-многим с клиентской сущностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...