2011-11-09 53 views
2

我已經設置了(任務)的模型,在我的方式來理解核心數據,我就來爲這樣的:將三個項目的背景:NSPersistentStoreCoordinator保存到XML

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文件嗎?謝謝。

編輯:好像NSXMLStoreType在iPhone中不可用!

回答

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使這種存儲類型可用並編寫您自己的這種存儲類型的實現,但我一直無法實際完成這項工作。