我有一個非常簡單的應用程序,它有一個CoreData實體,並具有與自身的循環關係。我想在另一個應用程序中將這些數據用作plist。核心數據 - 將實體保存爲pList /字典
該關係在父方&'對許多'在兒童方'對'。
基本上在頂部一個項目,然後該對象的孩子,孩子的對象,等孩子......樹
我想創建從這個數據字典/ plist出現的結構實體包括關係。 (這是有道理的嗎?)
到目前爲止,在這裏的其他答案的幫助下,我可以得到所有對象的plist(但都在同一個「級別」)或最終父對象的plist但孩子們的關係是錯誤的)。
這是我在做什麼,試圖獲取數據,並將其保存到我的桌面:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:ENTITY_NAME];
request.resultType = NSDictionaryResultType;
NSError *fetchError = nil;
NSArray *results = [self.databaseDocument.managedObjectContext executeFetchRequest:request error:&fetchError];
NSLog(@"%@", results);
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *path = [caches stringByAppendingPathComponent:@"/../../../../../../../../Desktop/my.plist"];
[results writeToFile:path atomically:NO];
目前只有三個對象。主對象,該對象的子對象和該子對象的子對象。
這是給我一個plist,它是一個包含三個對象的數組。
如果我有一個謂語只得到沒有父這樣的對象:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:ENTITY_NAME];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parent == nil"];
request.predicate = predicate;
NSError *fetchError = nil;
NSArray *results = [self.databaseDocument.managedObjectContext executeFetchRequest:request error:&fetchError];
NSLog(@"%@", results);
Item *mainItem = [results lastObject];
NSArray *keys = [[[mainItem entity] attributesByName] allKeys];
NSDictionary *dict = [mainItem dictionaryWithValuesForKeys:keys];
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *path = [caches stringByAppendingPathComponent:@"/../../../../../../../../Desktop/my.plist"];
[dict writeToFile:path atomically:NO];
這給了我一個目錄,但不包括兒童。
任何人都可以向我解釋我如何能得到像我的實體結構的plist?換句話說,只有一個包含所有孩子的目錄,以及該孩子目錄中每個孩子的孩子,等等......?
中處理它們父子關係中的遞歸是否具有任意深度? – FluffulousChimp
@NSBum是的,它可以永遠持續下去。 – Bertie
@NSBum但實際上只能達到6或7級 – Bertie