0

ドキュメントとそのパスのリストがあります。

Unsigned/Corporate Tax Return/Testing.docx
Signed/Report/fieldsInfo.pdf
Unsigned/Corporate Tax Return/testSecure.pdf
Unsigned/Corporate Tax Return/2012/fileCatcher.pdf
Unsigned/Corporate Tax Return/2012/taxReturn.pdf

これから、これらすべてのオブジェクトが配置されるツリー構造のオブジェクト配列が必要です。ドキュメントとファイルの 2 つのオブジェクトタイプがあります。

Objective C でこれを行うにはどうすればよいですか?

私がこれまでに持っていたもの:

- (void) createFolderStructure:(Document *) doc{
    Folder * root = [[Folder alloc]init];

    NSArray * folders = [doc.documentFilePath componentsSeparatedByString:@"/"];

    for(NSString * folderName in folders){
        if([root.folderSubFolders count] == 0){
            //root is empty , create folder
            Folder * newFolder = [[Folder alloc]init];
            newFolder.folderName = folderName;
            [root.folderSubFolders addObject:newFolder];
        } else {
            //root has subfolders
            for(Folder * folder in root.folderSubFolders){
                if ([folder.folderName isEqualToString:folderName]) {
                    //folder exists in subfolders

                } else {
                    //folder doesn't exist ,create folder
                    Folder * newFolder = [[Folder alloc]init];
                    newFolder.folderName = folderName;
                    [root.folderSubFolders addObject:newFolder];

                }
            }
        }
    }
}
4

1 に答える 1

0

あなたはこれを行うことができます:

NSString *str = @"Unsigned/Corporate Tax Return/2012/taxReturn.pdf";
NSArray *arr = [str componentsSeparatedByString:@"/"];

したがって、NSStringを含む配列があります

0-署名なし、1-法人税申告書..

これを行うとき:

id fileObj = [arr lastObject];

Fileオブジェクトを取得します。配列内の残りのオブジェクトは、Documentオブジェクトである必要があります。

于 2012-07-20T09:44:07.220 に答える