2012-05-30 11 views
5

mojego kodu jest poniżej:jak uzyskać objectID z adresu URL?

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

następnie chcę uzyskać sprzeciwił tak:

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

ale objID jest zerowa. nic złego ? jak to zrobić ? Dziękuję Ci !

+2

Czy to możliwe, że zapisujesz nowo utworzony identyfikator obiektu przed zapisaniem i próbujesz go odzyskać po zapisaniu? Ponieważ obiekt ma tymczasowy identyfikator i zostanie mu przyznany na stałe, co wyjaśniłoby twój problem. – svena

Odpowiedz

7

Jeśli jest to rzeczywisty kod, a następnie poniżej linii jest podejrzany

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

Jesteś przydzielenie nowego NSPersistentStoreCoordinator, niezainicjowanej, bez żadnych sklepów dodaje do niego. Zgodnie z dokumentacją zwróci wartość zero, jeśli nie znaleziono pasujących sklepów.

Jeśli masz zarządzanego kontekstu obiektu poręczny, następujące powinny pracować

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

inaczej Zgodziłbym się z odpowiedzią svena użytkownika.

+0

To zadziałało dla mnie ... –

Powiązane problemy