如何导入分层文件夹样式数据
How to import hierarchical folder style data
我有一个对象数组,我需要迭代这些对象并 find/insert 到一个核心数据实体中。我只是无法理解如何深入 albumParentFolders 并查看它们是否存在,如果不存在则将它们添加到实体相册中。
我知道这是一种深入到 albumParentFolders 的递归方法,但由于我的 AlbumObjects 的结构无法找到有效的解决方案。
所以,我要导入的对象数组是这样的
NSArray AlbumObjects
---------------------------------------
NSString * albumFolderName
NSString * albumDetailsTitle
NSString * albumDetailsURL
NSArray * albumParentFolders (Array of (NSStrings *) of albumFolderNames used for the level in the tree this album lives in. Can be nil for a root folder)
我需要先搜索核心数据,如果找不到,请将 albumFolderName 插入到名为 albums 的核心数据实体中。然后使用自动生成的相册实体 class,为该文件夹插入一个新的详细信息对象。例如[newFolder addDetailsObject:newDetails] 此外,albumFolderName 在核心数据中不是唯一的,因为 albumFolderName 可以多次列出,但在不同的父文件夹中。
Entity: albums
-------------------------------------
Attribute: folderName
-------------------------------------
Relationship: albumDetails <------>> Entity : details (For adding multiple albumDetailsTitle and albumDetailsURL)
Relationship: parent <<-------
Relationship: subGroups |
^ |
------------
相册文件夹最终使用 NSOutlineView 和 IB 绑定显示在树视图中。这部分已经可以了。
如果有人可以建议如何迭代 AlbumObjects,特别是深入到 albumParentFolders 以便整个文件夹结构可以存储在实体中,我将非常感激。
SDK需要支持OSX10.7+
从根部开始,循序渐进,创建缺失的分支。
伪代码:
album = root
if (albumParentFolders != nil) {
parentAlbum = root
for (folder in albumParentFolders) {
album = find folder in parentAlbum.subGroups
if (album not found) {
album = insert new album
album.folderName = folder
album.parent = parentAlbum
}
parentAlbum = album
}
}
add details to album
我有一个对象数组,我需要迭代这些对象并 find/insert 到一个核心数据实体中。我只是无法理解如何深入 albumParentFolders 并查看它们是否存在,如果不存在则将它们添加到实体相册中。
我知道这是一种深入到 albumParentFolders 的递归方法,但由于我的 AlbumObjects 的结构无法找到有效的解决方案。
所以,我要导入的对象数组是这样的
NSArray AlbumObjects
---------------------------------------
NSString * albumFolderName
NSString * albumDetailsTitle
NSString * albumDetailsURL
NSArray * albumParentFolders (Array of (NSStrings *) of albumFolderNames used for the level in the tree this album lives in. Can be nil for a root folder)
我需要先搜索核心数据,如果找不到,请将 albumFolderName 插入到名为 albums 的核心数据实体中。然后使用自动生成的相册实体 class,为该文件夹插入一个新的详细信息对象。例如[newFolder addDetailsObject:newDetails] 此外,albumFolderName 在核心数据中不是唯一的,因为 albumFolderName 可以多次列出,但在不同的父文件夹中。
Entity: albums
-------------------------------------
Attribute: folderName
-------------------------------------
Relationship: albumDetails <------>> Entity : details (For adding multiple albumDetailsTitle and albumDetailsURL)
Relationship: parent <<-------
Relationship: subGroups |
^ |
------------
相册文件夹最终使用 NSOutlineView 和 IB 绑定显示在树视图中。这部分已经可以了。
如果有人可以建议如何迭代 AlbumObjects,特别是深入到 albumParentFolders 以便整个文件夹结构可以存储在实体中,我将非常感激。
SDK需要支持OSX10.7+
从根部开始,循序渐进,创建缺失的分支。
伪代码:
album = root
if (albumParentFolders != nil) {
parentAlbum = root
for (folder in albumParentFolders) {
album = find folder in parentAlbum.subGroups
if (album not found) {
album = insert new album
album.folderName = folder
album.parent = parentAlbum
}
parentAlbum = album
}
}
add details to album