我已经做了一个UIImagesViews数组,我已经做了一个代码,为他们分配随机图片。如果超过或5张图片显示相同的图片,我想制作一个if语句。If语句与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
-或者switch
-案例。
编辑:这是更新的代码;
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} }
说;
二元运算符“==”不能被应用到两个“元素”(又名“AnyObject”)操作数
编辑:这是我从克里斯托弗凯文尝试另一个代码;
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
@为什么我一直无法找出任何东西,想通过'if images == card1 && card1' - 5次,但它完全是愚蠢的... –