Точный ответ на ваш вопрос заключается в том, что вы получаете ноль, потому что вы используете imageNamed: который ищет изображение, используя заданное (путь) имя относительно относительно корня пакета (то есть .app каталог в развернутом приложении), в то время как вы даете ему абсолютный путь к каталогу документа.
Вы действительно можете использовать imageNamed для загрузки изображений из подкаталога вашего пакета.
Это требует двух вещей:
что ваши изображения на самом деле находятся в подкаталоге в вашем развернутом пакете, а не просто в подкаталоге или группе в вашем проекте XCode - поскольку они сворачиваются в корневой каталог.
Другими словами, вам нужна «голубая группа» в XCode (ссылка на папку).
Вы используете относительный путь в imageNamed.
Так [UIImageView imageNamed: @ "subdir / foo"] загрузит foo.png или foo@2x.png, где эти файлы появятся в "синей" группе в XCode под названием "subdir".
Вы также можете использовать это, чтобы найти изображение в подкаталоге ваших документов, так как вы знаете, где будут создаваться документы относительно вашего пакета, но это немного странно. Для загрузки изображений из документов вы должны использовать imageWithContentsOfFile: вместо imageNamed:
Мне надоело искать ответ на подобные вещи, я провел некоторое тестирование и подробно изложил этот и остальные результаты (с изображениями!) В ответе на этот вопрос:
UIImage imageNamed требует pathForResource?