gpt4 book ai didi

iphone - 如何检索存储的 NSManagedObject 子类引用?

转载 作者:行者123 更新时间:2023-12-03 20:49:18 24 4
gpt4 key购买 nike

我有一个名为 Tour 的 NSManagedObject 子类。我使用以下代码存储了对它的引用:

    prefs = [NSUserDefaults standardUserDefaults];
NSURL *myURL = [[myTour objectID] URIRepresentation];
NSData *uriData = [NSKeyedArchiver archivedDataWithRootObject:myURL];
[prefs setObject:uriData forKey:@"tour"];

现在我想取回它。我尝试使用:

NSData *myData = [prefs objectForKey:@"tour"];
NSURL *myURL = [NSKeyedUnarchiver unarchiveObjectWithData:myData];

TourAppDelegate *appDelegate = (TourAppDelegate *)[[UIApplication sharedApplication] delegate];

NSManagedObjectID *myID = [appDelegate.persistentStoreCoordinator managedObjectIDForURIRepresentation:myURL];

if (myID)
{
Tour *tempObject = [appDelegate.managedObjectContext objectWithID:myID]; //WARNING
tour = tempObject;
}

if (tour) //instruction...

但它给了我这个警告“不兼容的 Objective-c 类型。初始化'struct NSManagedObject *',预期'struct Tour *'

另外,在执行时,它给了我这个:由于未捕获的异常“NSObjectInaccessibleException”而终止应用程序,原因:“CoreData无法满足”0x5001eb0的错误

我该如何解决这个问题?

最佳答案

关于警告,您是否尝试强制类型转换?

Tour *tempObject = (Tour *) [appDelegate.managedObjectContext objectWithID:myID];

与 NSObjectInaccessibleException 相关的问题已在 St3fan 发布的链接中解决:)

PS:记住 nsmanagementobject 的子类仍然是 nsmanagementobject!

关于iphone - 如何检索存储的 NSManagedObject 子类引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2454397/

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