Похоже, вы пытаетесь вернуть изображение для страны, но только если оно есть в вашем утвержденном списке, с возможностью originString
, содержащего другой текст, который вас не волнует.
Вместо этого, если возможно, я бы поставил требование, чтобы originString
содержал только текст, который вас интересует, затем переместил эти изображения в подкаталог ваших ресурсов и вызвал imageNamed:
напрямую.Он вернет nil
, если изображение не может быть загружено, и будет вести себя так же, как ваш метод.Вы можете избавиться от этого массива и избежать цикла и множества сравнений строк.
Если вы не можете добавить это требование для originString
, тогда я предлагаю решить эту проблему проектирования, и вам следует сначала исправить ее.
Редактировать на основе ответа разработчика Канады:
Посмотрите документацию по -[NSFileManager contentsOfDirectoryAtPath:error:]
.Вы можете перечислить файлы в каталоге, сохранив их (за исключением расширения .png
) в массиве, а затем использовать этот массив для поиска совпадений.
Вы должны отсортировать массив по длине, сначала по длине, чтобыизбегать ложных срабатыванийЯ не могу привести пример для стран, но для штатов вы бы хотели проверить «Западную Вирджинию» перед «Вирджинией», потому что последняя будет соответствовать строкам, которые также соответствуют первой.