Swift: Creating an array of UIImage

You have two problems (and without a regex!)

1. You aren’t creating an array. You need to do:

var logoImages: [UIImage] = []

or

var logoImages: Array<UIImage> = []

or

var logoImages = [UIImage]()

or

var logoImages = Array<UIImage>()

2. If you want to add new objects to an array, you should use Array.append() or some of the equivalent syntactic sugar:

logoImages.append(UIImage(named: "logo.png")!)

or

logoImages += [UIImage(named: "logo.png")!]

or

logoImages += [UIImage(named: "logo.png")!, UIImage(named: "logo2.png")!]

You need to append to the array because (excerpt from docs):

You can’t use subscript syntax to append a new item to the end of an
array. If you try to use subscript syntax to retrieve or set a value
for an index that is outside of an array’s existing bounds, you will
trigger a runtime error. However, you can check that an index is valid
before using it, by comparing it to the array’s count property. Except
when count is 0 (meaning the array is empty), the largest valid index
in an array will always be count – 1, because arrays are indexed from
zero.

Of course you could always simplify it when possible:

var logoImage: [UIImage] = [
    UIImage(named: "logo1.png")!,
    UIImage(named: "logo2.png")!
]

edit: Note that UIImage now has a “failable” initializer, meaning that it returns an optional. I’ve updated all the bits of code to reflect this change as well as changes to the array syntax.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)