gpt4 book ai didi

cocoa - NSManagedObjectID 到 NSData

转载 作者:行者123 更新时间:2023-12-03 16:03:10 31 4
gpt4 key购买 nike

我发现了这个美妙的 NSManagedObjectID。这对于引用 Entity/NSManagedObject/NSEntityDescription 非常有用,对吗?
让我们从实体获取 ID:

NSEntityDescription *entity = [self newEntity];     
NSManagedObjectID *objID = [entity objectID];

那么...知道如何将此 objID 转换为字符串吗?或者更好:NSData。实际上可以将其保存到 NSUserDefaults 中。 ;-)

顺便说一句:NSFetchRequest 不想在我的情况下工作。我使用此示例的修改版本:answer of an old question .

最佳答案

获取与 NSManagedObjectobjectID 对应的存档 URI:

NSManagedObject* myMO;
...
NSURL *uri = [[myMO objectID] URIRepresentation];
NSData *uriData = [NSKeyedArchiver archivedDataWithRootObject:uri];

为了返回原始托管对象的实例,您需要一个 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];

关于cocoa - NSManagedObjectID 到 NSData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516443/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com