ドロップボックスをサポートするアプリに「フォルダに移動」機能を追加しています。ユーザーのドロップボックス全体ですべてのフォルダーとサブフォルダーを取得しようとしています。私が今持っているコードは、ログに記録されている場合は正しい順序ですが、逆になっています
-(void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata {
if (allFolders == nil) {
allFolders = [[NSMutableArray alloc] init];
[allFolders addObject:@"/"];
}
for (DBMetadata *fileMetadata in metadata.contents) {
if ([fileMetadata isDirectory]) {
NSArray *filePathComponents = [fileMetadata.path pathComponents];
NSString *inFolder = [filePathComponents objectAtIndex:[filePathComponents count]-2];
NSLog(@"file is in folder %@",inFolder);
[allFolders insertObject:fileMetadata.filename atIndex:[allFolders indexOfObject:inFolder]];
if ([metadata.contents count] > 0) [[self restClient] loadMetadata:fileMetadata.path];
}
}
}
これに関する問題は、アプリのドキュメント ディレクトリのすべてのフォルダーも表示する必要があることです。テーブルのすべてのアイテムのパス、名前、およびインデント レベルを格納するフォルダー アイテムと呼ばれるhViewFoldersViewController
カスタムを使用します。NSObject
このメソッドを使用すると、ドロップボックス ヘルパー クラス内のすべての lFolders を に移動できるため、パスを取得できませんが、viewcontroller
混乱しているのはobjectAtIndex
. オブジェクトを追加するだけにすると、すべての第 1 レベルのフォルダーが表示され、次に第 2、第 3 レベルのフォルダーが表示されます。ドロップボックスに「テスト1」というフォルダーがあり、テスト1に「テスト2」が含まれている場合、テスト1が表示され、テスト2フォルダーがさらにインデントされ、次に他の最初のディレクトリフォルダーが表示されます。配列でFolderItemを使用すると、objectAtIndex
. 挿入する必要があるフォルダのインデックスを取得するにはどうすればよいですか?