Ios 如何在Xcode中创建struct,使用struct中的级别并将它们读入新函数?
我对swift中的struct有点问题。首先,我是开发应用程序的新手,但我正在努力学习。 几天前,我发布了我的代码,有人告诉我最好使用struc并在级别上工作,但老实说,我大约花了4天的时间在网上了解如何使用structs,但我不知道怎么做 我在这里发布代码…我希望有人能告诉我如何调整代码Ios 如何在Xcode中创建struct,使用struct中的级别并将它们读入新函数?,ios,swift,xcode,struct,Ios,Swift,Xcode,Struct,我对swift中的struct有点问题。首先,我是开发应用程序的新手,但我正在努力学习。 几天前,我发布了我的代码,有人告诉我最好使用struc并在级别上工作,但老实说,我大约花了4天的时间在网上了解如何使用structs,但我不知道怎么做 我在这里发布代码…我希望有人能告诉我如何调整代码 @IBOutlet weak var leftImage: UIImageView! @IBOutlet weak var rightImage: UIImageView! @IBOutlet weak va
@IBOutlet weak var leftImage: UIImageView!
@IBOutlet weak var rightImage: UIImageView!
@IBOutlet weak var sh: UIImageView!
enum correctImageType {
case left, right
}
struct Level {
var word: String
var leftImage: UIImage
var rightImage: UIImage
var soundFile: String
var correctImage: correctImageType
init(word: String, leftImage: UIImage, rightImage: UIImage, soundFile: String, correctImage: correctImageType) {
self.word = word
self.leftImage = leftImage
self.rightImage = rightImage
self.soundFile = soundFile
self.correctImage = correctImage
}
}
var level1 = Level(word: "dog", leftImage: UIImage(named: "foto1.png")!, rightImage: UIImage(named: "foto5.png")!, soundFile: "s1", correctImage: .left)
var level2 = Level(word: "horse", leftImage: UIImage(named: "foto5.png")!, rightImage: UIImage(named: "foto3.png")!, soundFile: "s5", correctImage: .right)
@IBAction func nextImage(_ sender: Any) {
leftImage.image = level1.leftImage
leftImage.isUserInteractionEnabled = true
self.view.addSubview(leftImage)
let gesture1 = UITapGestureRecognizer(target: self, action: #selector(ViewController.singleTap1))
leftImage.addGestureRecognizer(gesture1)
}
func singleTap1() {
if correctImageType.left == level1.correctImage {
print("ok")
} else {
print("not ok")
}
}
var player: AVAudioPlayer!
@IBAction func playSound(_ sender: Any) {
}
}
所以,我在这里要做的是。。。当我点击下一个按钮时,我想显示两个图像(左和右)和一个按钮(播放声音)。声音必须链接到两个图像之一。我的问题是…我不知道如何做到这一点。。我不知道如何使用结构。在Swift中,
struct
和class
之间的主要区别在于结构具有值语义,而类具有引用语义:
Swift中的类型分为两类:第一类是“值类型”,其中每个实例都保留其数据的唯一副本,通常定义为结构
、枚举
或元组。第二种是“引用类型”,其中实例共享数据的一个副本,该类型通常定义为类
因此,如果您在一个变量中创建一个结构的实例
,并将其分配给另一个变量,那么您将能够在不影响第一个变量的情况下偶然获得第二个变量。相反,如果它是一个类
,那么更改第二个将更改第一个,因为每个变量都是对实际存储的引用
除此之外,结构和类几乎完全相同。在声明
可变
方法等方面存在一些差异,但它们不应该影响您在这里所做的事情。本质上,您在这里有两个问题。“structs是如何工作的?”和“我的代码有什么问题?”您可能希望为每个问题分别发布一个问题,或者编辑您的问题,使其询问其中一个问题。