How to get Assets.xcassets file names in an Array (or some data structure?)

前端 未结 1 1314
梦毁少年i
梦毁少年i 2020-12-06 02:55

I\'m trying to use Swift to iterate over the images I have put into my Assets folder. I\'d like to iterate over them and insert them into a .nib file later, but

相关标签:
1条回答
  • 2020-12-06 02:59

    Assets.xcassets is not a folder but an archive containing all the images using Assets.car as its filename.

    If you really want to read the assets file then you need to use some library that can extract the contents of the file like this one.

    Or you can create a bundle in your project and drag all the images you have there. In my case, I have Images.bundle in my project. To get the filenames you can do the following:

    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/4 Version:

    let fileManager = FileManager.default
    let bundleURL = Bundle.main.bundleURL
    let assetURL = bundleURL.appendingPathComponent("Images.bundle")
    
    do {
      let contents = try fileManager.contentsOfDirectory(at: assetURL, includingPropertiesForKeys: [URLResourceKey.nameKey, URLResourceKey.isDirectoryKey], options: .skipsHiddenFiles)
    
      for item in contents
      {
          print(item.lastPathComponent)
      }
    }
    catch let error as NSError {
      print(error)
    }
    
    0 讨论(0)
提交回复
热议问题