私は、繰り返し処理してコアデータエンティティを検索/挿入するために必要なオブジェクトの配列を持っています。私は、albumParentFoldersをどのようにしてダイブして、存在しているかどうか、エンティティアルバムに追加しないかどうかを見極めることはできません。階層的なフォルダスタイルデータをインポートする方法
私は、albumParentFoldersをドリルダウンする再帰的な方法だと知っていますが、私のAlbumObjectがどのように構造化されているかによって、実際の解決策を見つけることができません。
ので、オブジェクトの私の配列をインポートするためには、私が最初に検索コアデータに必要とコアデータのエンティティにalbumFolderName挿入を発見していない場合はアルバムと呼ばれるこの
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)
のようなものです。次に、アルバムエンティティに自動生成されたクラスを使用して、そのフォルダの新しい詳細オブジェクトを挿入します。例えば[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バインディングを使用してツリービューに表示されます。この部分はすでに動作しています。
AlbumObjectを繰り返し処理する方法、具体的にはalbumParentFoldersをドリルしてフォルダ構造全体をエンティティに格納できるように助言できる人は、私は大変感謝しています。
SDKは、ツリーをたどると、不足している枝を作成し、ルートにOSX 10.7以降
は 'albumParentFolders'フルパスですか? AlbumFolderNamesは一意ではなく、見つからない場合にのみ挿入します。 – Willeke
albumParentFoldersはnilまたは[0] = @ "General" [1] = @ "July 2016" [2] = @ "Keep" albumFolderNameは@そのような場合のように見えるフルパスです。 albumFolderNameはnilでもかまいません。フォルダがないため、ルートの詳細項目がないことを示します。 次の配列オブジェクトは、[0] = @ "New Import" [1] = @ "July 2016" [2] = @ "Keep"なので、それが存在するかどうかを検証するために親の親の親を見つける必要があります。私はこれが再び再帰的な部分であると推測することはできません。 – GeoffCoope