pap*_*apr 13 cocoa core-data save
我发现了这个很棒的NSManagedObjectID.这对于引用Entity/NSManagedObject/NSEntityDescription非常有用,对吧?
让我们从实体获取一个ID:
NSEntityDescription *entity = [self newEntity];
NSManagedObjectID *objID = [entity objectID];
Run Code Online (Sandbox Code Playgroud)
那么......任何想法如何将其objID变成字符串?或者更好:NSData.实际上可以将它保存到NSUserDefaults.;-)
顺便说一句:NSFetchRequest不想在我的情况下工作.我使用这个例子的修改版本:回答一个老问题.
Bar*_*ark 38
要获取与NSManagedObjects 对应的存档URI objectID:
NSManagedObject* myMO;
...
NSURL *uri = [[myMO objectID] URIRepresentation];
NSData *uriData = [NSKeyedArchiver archivedDataWithRootObject:uri];
Run Code Online (Sandbox Code Playgroud)
为了返回原始托管对象的实例,您需要一个CoreData堆栈,其持久存储保存已添加到该实例的实例NSPersistentStoreCoordinator.然后:
NSData *uriData;
NSPersistentStoreCoordinator *psc;
NSManagedObjectContext *moc; //with moc.persistentStoreCoordinator = psc.
...
NSURL *uri = [NSKeyedUnarchiver unarchiveObjectWithData:uriData];
NSManagedObjectID *moID = [psc managedObjectIDForURIRepresentation:uri];
NSManagedObject *myMO = [moc objectWithID:moID];
Run Code Online (Sandbox Code Playgroud)