2016-07-03 3 views
-1

Я пытаюсь создать массив изображений и метод, который позволит мне генерировать случайное изображение.не может вызывать значение нефункционного типа '[UIImage]

Я читал здесь еще один вопрос, но это не решило мою проблему, может кто-нибудь попытаться объяснить мне, что здесь происходит, а не просто дать мне ответ.

import GameplayKit 
import UIKit 


struct ImgArray { 
    let images = [ 
     UIImage(named: "emoji01.png")!, 
     UIImage(named: "emoji02.png")!, 
     UIImage(named: "emoji03.png")!, 
     UIImage(named: "emoji04.png")!, 
     UIImage(named: "emoji05.png")! 
    ] 

    func getRandomImage() { 
      let randomImage = GKRandomSource.sharedRandom().nextIntWithUpperBound(images.count) 
     return images(randomImage) 
    } 

} 
+0

Там нет ничего сложного, вы просто неправильный синтаксис для индексации. [] –

ответ

2

Если вы просто пытаетесь произвести случайное изображение, вот много простого решения:

import UIKit 

let images = [ 
    UIImage(named: "emoji01.png")!, 
    UIImage(named: "emoji02.png")!, 
    UIImage(named: "emoji03.png")!, 
    UIImage(named: "emoji04.png")!, 
    UIImage(named: "emoji05.png")! 
] 

func getRandomImage() -> UIImage { 
    let number = Int(arc4random_uniform(images.count)) 
    return images[number] 
} 

Что это делает:

Это создает набор изображений -

let images = [...] 

Это создает функцию -

func getRandomImage() -> UIImage { 

Замечание: при -> UIImage часть означает, что функция на самом деле возвращает изображение. Вы не можете вернуть что-то в функции void.

Это создает случайное число -

let number = ... 

Это возвращает изображение -

return images[number] 
0

Неправильный тип кронштейна:

return images(randomImage) 

Замените эту строку с:

return images[randomImage] 
+0

Спасибо, что и придать ему тип возврата UIImage сделал трюк. –

0

да, brakets неверны, изменения() на [] из-за этого

с let images = [...] вы создаете массив. Одна из многих примера this

Чтобы получить доступ к array- элемента, и должен взять на себя имя массива с последующим [ по индексу (= положение) в массиве, и, по меньшей мере ]

Смежные вопросы