Продвинутая категория какао - перехват всех файлов - iOS - PullRequest
0 голосов
/ 13 января 2011

Эй, ребята, В моем приложении мне нужно убедиться, что файл действительно существует на устройстве, прежде чем к нему будут обращаться некоторые методы доступа к файлу (UIImage imageNamed, Cocos2d CCSprite и т. Д.).

Мне нужно быть уверенным, что файл находится на устройстве (и если нет, попытаться получить его с серверов). Могу ли я сделать это без изменения всего кода для его поддержки? Я подумал о чем-то вроде «Super Category» в файловой системе ... Возможно ли это?

Я видел эту идею, что вы думаете переопределение-методы-в-какао-без-подклассов

Спасибо! M.

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Вы можете использовать NSFileManager fileExistsAtPath:, но из документов:

/ * Следующие методы имеют ограниченную полезность. Попытка предиката поведения на основе текущего состояния файловой системы или конкретного файла в файловой системе поощряет странное поведение перед лицом состояния гонки файловой системы. Гораздо лучше попытаться выполнить операцию (например, загрузить файл или создать каталог) и корректно обработать ошибку, чем пытаться заранее выяснить, будет ли операция успешной.

Так что, вероятно, просто попробуйте получить ресурс, если он не получится, загрузите и повторите попытку.

0 голосов
/ 13 января 2011

часто лучше всего попытаться прочитать файл / URL-адрес и завершиться неудачно - файловые системы могут быть изменены.

если вы знаете комплект изображений, используйте NSBundle.

...