2012-05-30 16 views
5

मेरे कोड के नीचे है:ऑब्जेक्ट आईडी को url से कैसे प्राप्त करें?

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

तो मैं प्राप्त करना चाहते हैं इस तरह आपत्ति जताई:

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

लेकिन ObjId नहीं के बराबर है। कुछ ग़लत है ? उसको कैसे करे ? धन्यवाद !

+2

क्या यह हो सकता है कि आप सहेजने से पहले इसे सहेजने और इसे पुनर्प्राप्त करने का प्रयास करने से पहले एक नव निर्मित ऑब्जेक्ट आईडी संग्रहीत कर रहे हों? चूंकि ऑब्जेक्ट में पहले एक अस्थायी आईडी है और सहेजने के दौरान एक स्थायी व्यक्ति दिया जाएगा, जो आपकी समस्या को समझाएगा। – svena

उत्तर

7

इससे आपकी वास्तविक कोड है, तो नीचे लाइन संदिग्ध

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

आप एक नया NSPersistentStoreCoordinator, अप्रारंभीकृत आवंटन कर रहे हैं, बिना किसी भी स्टोर से जोड़ रहे है। दस्तावेज के अनुसार, यदि कोई मिलान करने वाला स्टोर नहीं मिलता है तो यह शून्य वापस आ जाएगा।

आप प्रबंधित वस्तु संदर्भ काम है, तो निम्न कार्य करना चाहिए

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

अन्यथा मैं svena के जवाब से सहमत हूँ।

+0

यह मेरे लिए अच्छा काम किया ... –

संबंधित मुद्दे