2012-02-02 3 views
0

У меня есть группа изображений внутри моего проекта xCode. Я пытаюсь получить все файлы из этой папки в мое приложение.NSFileManager contentsOfDirectoryPath, возвращающий пустой

NSFileManager *fm = [NSFileManager defaultManager]; 
    NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:nil]; 

Приведенный выше код всегда возвращает пустой массив. Я добавил группу в xCode 4.2, щелкнув правой кнопкой мыши, а затем «Новая группа».

+1

группу = папка – lawicko

+0

То, что я знаю, но Xcode не позволяет у добавлять папки. Как добавить папки, а не логические группы. – azamsharp

ответ

2

Путь, который вы используете, вероятно, не правильный. /Images/ будет ссылаться на изображения в корне вашей песочнице. Если изображения в вашей папке будут добавлены в качестве ресурса в вашем проекте, они будут сохранены в папке «Ресурсы» в вашем приложении, возможно, даже в каталоге Images.

Вы также хотите прочитать ошибку, чтобы узнать, что не так. Вот что это за:

NSErorr *error = nil; 
NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:&error]; 
if (!dirContents) { 
    // inspect error 
} 

Используйте -[NSBundle resourcePath], чтобы получить путь к каталогу приложений ресурсов.

Поймите, что ваша структура проекта не соответствует местоположению, в котором ваши ресурсы попадут в ваше приложение. Ресурсы скопированы в каталог ресурсов с использованием ваших целей. Copy Bundle Resources buid phase.

Если вы действительно хотите добавить некоторые файлы в другой каталог в каталоге ресурсов добавить новый Copy Files фазу, с назначением Resources и Subpath имени с папкой, как Images

Затем вы можете перебираем эти изображения, используя диспетчер файлов и путь, который вы получите, используя:

[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Images"]; 
+0

Да, папка с изображениями находится в папке «Ресурсы». Как я могу определить, является ли это каталогом или группой, поскольку все окрашено в желтый цвет. В предыдущих версиях xCode группы были окрашены в синие папки. – azamsharp

+2

Поймите, что макет в навигаторе проектов не соответствует вашим изображениям в вашем приложении. Фаза «Ресурсы копирования» в вашей целевой копии скопирует все файлы изображений в каталог «Ресурсы» вашего приложения, не обращая внимания на группы или каталоги в навигаторе проектов. См. Мой обновленный ответ. –

+0

Спасибо за подробное объяснение! – azamsharp

Смежные вопросы