简体   繁体   中英

How to add images in array

Trying to add images to array, then need to merge four arrays to one array. What i am trying to do is:

var arrFiltersImagesList : NSMutableArray = []
var arrRoomInfoImages = Array<UIImage>()
var arrPropertyInfoImages = Array<UIImage>()
var arrAvailabilityImages = Array<UIImage>()
var arrPreferencesImages = Array<UIImage>()

arrRoomInfoImages += [UIImage(named: "ic_roomType_small.png")!, UIImage(named: "ic_furnished_small.png")!, UIImage(named: "ic_numberBedrooms_small.png")!]

    arrPropertyInfoImages += [UIImage(named: "ic_small.png")!, UIImage(named: "ic_propertyType_small.png")!, UIImage(named: "ic_numberBedrooms_small.png")!, UIImage(named: "ic_numberBathrooms_small.png")!, UIImage(named: "ic_amenities Copy_small.png")!]

    arrAvailabilityImages += [UIImage(named: "ic_roomType_small.png")!, UIImage(named: "ic_furnished_small.png")!, UIImage(named: "ic_ensuite_small.png")!]

    arrPreferencesImages += [UIImage(named: "ic_roomType_small.png")!, UIImage(named: "ic_furnished_small.png")!, UIImage(named: "ic_ensuite_small.png")!]

arrFiltersImagesList.addObject(arrRoomInfoImages)
    arrFiltersImagesList.addObject(arrPropertyInfoImages)
    arrFiltersImagesList.addObject(arrAvailabilityImages)
    arrFiltersImagesList.addObject(arrPreferencesImages)

Followed this link but doesn't worked at all output is terrible. Please guide the correct way. Thanks

I would do it by building your arrays into a let variable rather than a var variable, taking advantage of Swift's ability to infer the type:

import UIKit

let arrRoomInfoImages = [
  UIImage(named: "ic_roomType_small.png"),
  UIImage(named: "ic_furnished_small.png"),
  UIImage(named: "ic_numberBedrooms_small.png")].flatMap { $0 }

let arrPropertyInfoImages = [
  UIImage(named: "ic_small.png"),
  UIImage(named: "ic_propertyType_small.png"),
  UIImage(named: "ic_numberBedrooms_small.png"),
  UIImage(named: "ic_numberBathrooms_small.png"),
  UIImage(named: "ic_amenities Copy_small.png")].flatMap { $0 }

let arrAvailabilityImages = [
  UIImage(named: "ic_roomType_small.png"),
  UIImage(named: "ic_furnished_small.png"),
  UIImage(named: "ic_ensuite_small.png")].flatMap { $0 }

let arrPreferencesImages = [
  UIImage(named: "ic_roomType_small.png"),
  UIImage(named: "ic_furnished_small.png"),
  UIImage(named: "ic_ensuite_small.png")].flatMap { $0 }

let arrFiltersImagesList = [
  arrRoomInfoImages,
  arrPropertyInfoImages,
  arrAvailabilityImages,
  arrPreferencesImages]

Note that I'm not force-unwrapping the return values of the init methods. Instead I'm using flatMap to cull any nil values in the arrays. This is a quick-and-dirty way to handle errors when loading your images, you may want to do something more complicated to make sure any non-loading images are handled properly.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM