保存数据后为什么NSManagedObjectID没有改变?

时间:2012-11-16 09:03:46

标签: objective-c xcode nsmanagedobject

我试图通过不同的主题从网上获取内容。

  1. 我使用了一个新的managedobject上下文。我将主线程的managedobjectcontext设置为父线程。
  2. 我保存了新的managedobject上下文
  3. 我收集了managedobjectid(现在应该是永久性的)
  4. 嗯,问题是它不是永久性的。 objectID的{​​{1}}保持不变。

    managedObjectModel

    此处,PO与 PO([Catalogs convertEachElementToAnother:(id)^(id element){ BGCatalogData * data = (BGCatalogData*) element; NSManagedObjectID * theObjectID= data.objectID; return theObjectID; }]); NSError * error; BOOL saveSuccesfully = [[BGMDCRManagedObjectContextThreadHandler managedObjectContext] save:&error]; PO([Catalogs convertEachElementToAnother:(id)^(id element){ BGCatalogData * data = (BGCatalogData*) element; NSManagedObjectID * theObjectID= data.objectID; return theObjectID; }]); 类似。 NSLog将简单地遍历数组并将每个元素转换为数组。在另一个数组中返回其他内容。

    结果:

    ConvertEachElementToAnother

    此处,[Catalogs convertEachElementToAnother:(id)^(id element){ BGCatalogData * data = (BGCatalogData*) element; NSManagedObjectID * theObjectID= data.objectID; return theObjectID; }]: ( "0x8d26df0 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18603>", "0x8d24fe0 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18609>", "0x8d24930 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18615>", "0x8d23520 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18621>" ) (lldb) po error (NSError *) $1 = 0xb0102d28 [no Objective-C description available] 2012-11-16 15:57:18.763 BadgerNew[29395:1d03] [Catalogs convertEachElementToAnother:(id)^(id element){ BGCatalogData * data = (BGCatalogData*) element; NSManagedObjectID * theObjectID= data.objectID; return theObjectID; }]: ( "0x8d26df0 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18603>", "0x8d24fe0 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18609>", "0x8d24930 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18615>", "0x8d23520 <x-coredata:///BGCatalogData/tA2D6533A-00E2-4BD7-8A68-49944BC4DD18621>" ) 的{​​{1}}根本不会改变。

    我检查错误是零。代码工作没有问题。只是偶尔。我很好奇为什么保存后ID不会改变。数据非常大。实际上这是我第一次这样做。我应该期望在保存时更改data.ObjectID吗?我问的原因是因为managedObject上下文的父级是一个managedObject上下文而持久性存储是“在内存中”

0 个答案:

没有答案