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 の障害を実行できませんでした。
どうすればこれを解決できますか?