Как получить имена файлов Assets.xcassets в массиве (или какой-либо структуре данных?)

Я пытаюсь использовать Swift для перебора изображений, которые я поместил в свою папку «Ресурсы». Я хотел бы перебрать их и вставить их в.nib файл позже, но пока я не могу найти, как получить что-то вроде:

let assetArray = ["image1.gif", "image2.gif", ...]

Это возможно? Я играл сNSBundle.mainBundle() но ничего не мог найти по этому поводу. Пожалуйста, дайте мне знать. Спасибо!

 Patrick C12 июл. 2016 г., 01:14
Вы предлагаете загрузить более 30 изображений, набрав это 30 раз? Я довольно новичок в разработке под iOS, но мне это кажется странным.

Ответы на вопрос(1)

Решение Вопроса

а архив, содержащий все изображения, используя Assets.car в качестве имени файла.

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

Или вы можете создать пакет в вашем проекте и перетащить все изображения, которые у вас есть. В моем случае, у меня есть Images.bundle в моем проекте. Чтобы получить имена файлов, вы можете сделать следующее:

let fileManager = NSFileManager.defaultManager()
let bundleURL = NSBundle.mainBundle().bundleURL
let assetURL = bundleURL.URLByAppendingPathComponent("Images.bundle")
let contents = try! fileManager.contentsOfDirectoryAtURL(assetURL, includingPropertiesForKeys: [NSURLNameKey, NSURLIsDirectoryKey], options: .SkipsHiddenFiles)

for item in contents
{
  print(item.lastPathComponent)
}

Версия SWIFT 3:

let fileManager = FileManager.default
let bundleURL = Bundle.main.bundleURL
let assetURL = bundleURL.appendingPathComponent("Images.bundle")
let contents = try! fileManager.contentsOfDirectory(at: assetURL, includingPropertiesForKeys: [URLResourceKey.nameKey, URLResourceKey.isDirectoryKey], options: .skipsHiddenFiles)

for item in contents
{
    print(item.lastPathComponent)
}
 Neo4202 нояб. 2017 г., 22:08
Кажется, устарел для Swift 3 или выше. Как это делается сегодня?
 Christian Abella02 нояб. 2017 г., 23:56
Я добавил версию Swift 3 только сейчас.
 ScottyBlades13 янв. 2019 г., 01:32
Очень круто. Но он падает для меня наtry!когда я делаюdo catch это приводит к отлову этой ошибки:The file “Images.bundle” couldn’t be opened because there is no such file.
 Patrick C12 июл. 2016 г., 22:39
Это именно то, что я искал. Спасибо!

Ваш ответ на вопрос