Я создал массив UIImagesViews, и я сделал код, чтобы назначить им случайные снимки. Я хотел бы сделать if-statement, если более или 5 изображений имеют одинаковое изображение.If-statements с UIImageViews
var images: [UIImageView] = [Image1, Image2, Image3, Image4, Image5, Image6, Image7, Image8, Image9]
Различные фотографии названы card1, card2, card3
let firstRandomNumber = arc4random_uniform(3) + 1
let firstRandomString:String = String(format: "card%i", firstRandomNumber)
self.Image1.image = UIImage(named: firstRandomString)
let secondRandomNumber = arc4random_uniform(3) + 1
let secondRandomString:String = String(format: "card%i", secondRandomNumber)
self.Image2.image = UIImage(named: secondRandomString)
Все изображения имеют свой специфический код, как те выше. Теперь, как я сказал, я хотел бы сделать if
-statement или switch
-case, если пять или более изображений имеют одинаковое изображение.
Редактировать: Вот обновленный код;
let imageNames:NSArray = [firstRandomString, secondRandomString, thirdRandomString, fourthRandomString, fifthRandomString, sixthRandomString, seventhRandomString, eighthRandomString, ninthRandomString]
let maxRepeating = imageNames
.map {img in imageNames.reduce(0) { $1 == img ? $0 + 1 : $0} }
.reduce(0){ $1 > $0 ? $1 : $0 }
В код только одна ошибка: .map {img in imageNames.reduce(0) { $1 == img ? $0 + 1 : $0} }
;
бинарный оператор «==» не может быть применен к двум «Element» (так называемый «AnyObject») операнды
Edit: Вот еще один код, который я пытался от Кристофера Кевина;
var correct = 0
func checkImageDuplication() {
let imageArray : NSArray = [firstRandomString, secondRandomString, thirdRandomString, fourthRandomString, fifthRandomString, sixthRandomString, seventhRandomString, eighthRandomString, ninthRandomString]
let imageDataArray = imageArray.map { (image) -> NSData in
return UIImagePNGRepresentation(image as! UIImage)!
}
let countSet = NSCountedSet(array: imageDataArray)
for imageData in imageDataArray {
let count = countSet.countForObject(imageData)
if count > 5 {
correct = 5
}
}
}
@IBAction func PlayerPRESSED(sender: AnyObject) {
if correct == 5 {
view.backgroundColor = UIColor.greenColor()
}
}
Я пробовал код, но он не будет выполнять действие. (view.backgroundColor) У кого-нибудь есть идея, что не так с этим кодом?
показать ваш код. что вы пробовали до сих пор? – Wain
напишите свой случайный код, пожалуйста – Khuong
@Wain Я ничего не смог понять, понял что-то вроде 'if images == card1 && card1' - 5 раз, но это было совершенно глупо ... –