我正在创建两个数组。 第一个包含图像,第二个包含相同数量的数字。 如何使第二个整数数组对应第一个数组,所以每个图片都有一个特定的整数值?
答案 0 :(得分:0)
在评论之后你可以开始:
class PairedArrays
{
// instance variables - arrays for the images and values, start of empty
var images : [NSImage] = []
var values : [Int] = []
// add a new image/value pair
func addPair(image : NSImage, values : Int) -> Void { ... }
// retrieve integer associated with image
func getAssociatedInt(key : NSImage) -> Int { ... }
}
现在你需要:
struct
数组,保证图像&值总是成对添加(想想struct PlayingCard { ... }
)HTH
答案 1 :(得分:0)
Int
上的扩展名返回数字描述的图像:
let arrInt = [0, 1, 2, 3] //any number of integers
let cardnames = ["AceOfSpades", "OneOfSpades", "TwoOfSpades"] //etc...
extension Int {
var cardName : UIImage? {
guard self <= 51 else { return nil } //because any number greater than this would not represent a card in your 53-card deck
return UIImage(named: cardNames[self])
}
}
你基本上将它用作:
func AllImagesInTheDeck() -> [UIImage] {
var images : [UIImage] = []
for integer in arrInt {
if let image = integer.cardName {
images.append(image)
}
}
return images
}
从那时起,你可以操纵arrInt本身,每个玩家的单个整数数组,并返回他们的卡片图像,你可以调用AllImages方法(这不应该是对性能的重大打击)对于这种情况,数组长度不应该太长。或者,您可以直接从那里操作整数数组,并添加更多方法来确定添加哪些新卡片图像等。如果有任何结构或者必须避免上课,否则如果可以的话,将这种方法与CRD的课堂例子相结合也会很有效。