Вопрос

Я пытаюсь понять, как создать собственное дерево каталогов и получить к нему доступ из своего приложения.

Я выполняю какую-то программу обучения и хочу создать такую ​​структуру каталогов:

-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on

В каждом каталоге «Шаг» у меня будет определенный контент для этого этапа урока.Контент добавляется мной в процессе разработки.Следовательно, я не хочу создавать структуру и содержимое внутри приложения, просто получаю к нему доступ и читаю содержимое каталогов.Если я смогу создать такую ​​структуру и использовать ее, будет очень легко создать красивый дизайн, который позволит легко создавать новые уроки в моем приложении.

Чего я не могу понять, так это где мне следует создать эти каталоги в файловой структуре в xCode и каков путь к этим каталогам из моего приложения.

Это было полезно?

Решение

На iPhone у вас есть доступ только к собственным каталогам приложений.Лучшее место для размещения каталогов практики в папке «Документы» в каталоге приложения.

Этот...

NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

...дает вам путь к папке каталога, которую вы затем можете передать NSFileManager.

Если вы хотите увидеть структуру каталогов визуально, запустите приложение на симуляторе и посмотрите

~/Library/Application Support/iPhone Simulator/User/Applications

Приложение будет находиться в одной из папок с бессмысленным именем UUID.Вы можете увидеть каталоги и файлы в Finder.

Я бы добавил, что в iPhone уже есть большинство каталогов, которые могут вам практически понадобиться.У вас есть настройки, кеш, tmp, документы и т. д. — все на месте.

Редактировать01:

Я хочу добавить контент вручную перед началом приложения.Затем, из приложения, я прочитаю контент, который добавил перед запуском приложения.

Вы не можете изменить структуру каталогов по умолчанию и не имеете абсолютно никакого контроля над тем, как устанавливается приложение или его каталоги.Приложения для iPhone не имеют каких-либо внешних файлов поддержки.Все находится внутри пакета приложения.

Однако пакет приложения на самом деле представляет собой просто каталог, поэтому вы можете помещать в него разные вещи и копировать их в один из каталогов по умолчанию при первом запуске приложения.Вы можете записать в каталог документов все, что захотите.

Другие советы

Вы хотите посмотреть NSFileManager для создания каталогов:

NSFileManager *fm = [NSFileManager defaultManager];
NSError *error;
BOOL result = [fm createDirectoryAtPath:@"path....." withIntermediateDirectories:YES attributes:nil error:&error];
if(result){
   NSLog(@"success!");
} else {
   NSLog(@"error: %@",error);
}

Что касается места создания каталогов, вы можете поместить его в ~/Application Support/--Имя вашего приложения. Здесь вы должны хранить данные вашего приложения, если пользователю не требуется доступ к ним.В противном случае вы должны позволить пользователю решить, где его сохранить.

- (NSString *)applicationSupportDirectory {

       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
       NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
       return [basePath stringByAppendingPathComponent:@"MyApplication"];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top