2010-01-17 12 views
3

J'ai une entité de données de base qui doit détenir le NSManagedObjectID d'une autre entité. Pour ce faire, je pensais convertir l'ObjectID en une chaîne qui est un type approuvé d'un attribut NSManagedObject.Sauvegarde du NSManagedObjectID d'une entité en tant que propriété sur une entité différente?

Je peux lire de la documentation que je peux obtenir une représentation URI de l'ID par:

NSURL *uriID = [[myEntity objectID] URIRepresentation]; 

Je peux ensuite convertir cette URL à un NSString par:

NSString *stringID = [uriID absoluteString]; 

Ce que je peux persister dans mon attribut NSString NSManagedObject.

Maintenant, que se passe-t-il lorsque je dois aller dans l'autre sens?

Je voudrais pouvoir faire quelque chose comme ceci:

if([myManagedObject objectID] == value) 

valeur est le NSManagedObjectID que je me suis converti à un NSString plus tôt. Pour donner un peu plus de lumière sur le pourquoi: Je dois être en mesure d'avoir un objet Entité en attente et persister l'ObjectID d'un autre objet Entité, de sorte que je puisse y aller plus tard: cette dernière "interaction" Objets était avec cette entité.

L'espoir que quelqu'un peut me aider à obtenir ce travail :) Merci

Répondre

7

Pourquoi ne pas simplement établir un à une propriété de relation Object appelé interaction, qui pointe vers une instance d'un Entity - et vice versa, un relation to-many de Entity à Object appelée interactions? Cela résout le problème assez bien, sans toutes les méthodes de conversion. Mais vous pouvez également regarder les méthodes -managedObjectIDForURIRepresentation: et +URLWithString: pour aller dans l'autre direction.

+0

Salut Alex, merci. Je cherchais dans la documentation NSManagedObject et NSManagedObject, mais maintenant il est logique qu'elle réside dans les docs NSPersistentStoreCoordinator, puisque ce sera celle qui tirera l'objet du magasin :) C'est un peu plus compliqué que décrit, j'ai aussi plus d'un modèle et j'ai seulement besoin d'envelopper ce "contrôle" pour un cas d'utilisation "accident monstrueux". Merci encore, je vais le mettre en place :) – RickiG