2012-05-30 7 views
5

il mio codice è qui sotto:come ottenere l'ID oggetto dall'URL?

NSURL *urlID = [objID URIRepresentation]; 
    NSString *strID = [urlID absoluteString]; 
    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:strID, @"objectID", nil]; 
    localNotification.userInfo = infoDict; 

allora voglio ottenere il obiettato in questo modo:

NSString *strID = [notification.userInfo objectForKey:@"objectID"]; 
NSURL *urlID = [[NSURL alloc] initWithString:strID]; 
NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID]; 

ma l'objID è pari a zero. qualcosa di sbagliato? come farlo ? grazie !

+2

Potrebbe essere che si sta memorizzando un ID oggetto appena creato prima di salvare e provare a recuperarlo dopo il salvataggio? Poiché all'inizio l'oggetto ha un ID temporaneo e ne verrà garantito uno permanente durante il salvataggio, ciò spiegherebbe il problema. – svena

risposta

7

Se questo è il vostro codice vero e proprio, quindi la linea sotto è sospetto

NSManagedObjectID *objID = [[NSPersistentStoreCoordinator alloc] managedObjectIDForURIRepresentation:urlID]; 

si assegnano un nuovo NSPersistentStoreCoordinator, non inizializzato, senza negozi aggiunto ad essa. Secondo la documentazione, restituirà nulla se non vengono trovati negozi corrispondenti.

Se avete contesto oggetto gestito a portata di mano, in seguito dovrebbe funzionare

NSManagedObjectID *objId = [[[self managedObjectContext] persistentStoreCoordinator] managedObjectIDForURIRepresentation:urlID]; 

altrimenti sarei d'accordo con la risposta di svena.

+0

Ha funzionato bene per me ... –

Problemi correlati