NSPersistentStoreCoordinator保存为XML

时间:2011-11-09 20:47:14

标签: objective-c ios core-data

我已经设置了一个带有(任务)的模型,并以我的方式了解核心数据我已经达到了这个目的:在上下文中添加三个项目:

NSManagedObjectModel *m = [NSManagedObjectModel mergedModelFromBundles:nil];
NSPersistentStoreCoordinator *p = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:m];

//    NSPersistentStore *pp = [p addPersistentStoreWithType:NSXMLStoreType configuration:nil URL: options:<#(NSDictionary *)#> error:<#(NSError *__autoreleasing *)#>

NSManagedObjectContext *c = [[NSManagedObjectContext alloc] init];
[c setPersistentStoreCoordinator:p];
Task *t = [[Task alloc] init];
t.label = @"Test Item";
[c insertObject:t];
[c insertObject:t];
[c insertObject:t];

我现在如何将此上下文序列化为XML文件?感谢。

编辑:看起来iPhone中没有NSXMLStoreType!

1 个答案:

答案 0 :(得分:2)

如果您查看NSPersistentStoreCoordinator.h文件,您会看到这些行......

// Persistent store types supported by Core Data:
COREDATA_EXTERN NSString * const NSSQLiteStoreType NS_AVAILABLE(10_4, 3_0);
COREDATA_EXTERN NSString * const NSXMLStoreType NS_AVAILABLE(10_4, NA);
COREDATA_EXTERN NSString * const NSBinaryStoreType NS_AVAILABLE(10_4, 3_0);
COREDATA_EXTERN NSString * const NSInMemoryStoreType NS_AVAILABLE(10_4, 3_0);

请注意,对于大多数这些商店类型,我们看到NS_AVAILABLE(10_4, 3_0)这意味着这些商店类型在Mac OS 10.4及更高版本以及iOS 3.0及更高版本中均可用。

但是,对于NSXMLStoreType,我们会看到NS_AVAILABLE(10_4, NA)。这意味着NSXMLStoreType可用于Mac OS 10.4及更高版本,并且不适用于任何iOS。

过去可以解锁.h文件,修改此NSString以使此商店类型可用并编写您自己的商店类型实现,但我无法实际开展这项工作。