Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Xcode中创建struct,使用struct中的级别并将它们读入新函数?_Ios_Swift_Xcode_Struct - Fatal编程技术网

Ios 如何在Xcode中创建struct,使用struct中的级别并将它们读入新函数?

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

我对swift中的struct有点问题。首先,我是开发应用程序的新手,但我正在努力学习。 几天前,我发布了我的代码,有人告诉我最好使用struc并在级别上工作,但老实说,我大约花了4天的时间在网上了解如何使用structs,但我不知道怎么做

我在这里发布代码…我希望有人能告诉我如何调整代码

@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是如何工作的?”和“我的代码有什么问题?”您可能希望为每个问题分别发布一个问题,或者编辑您的问题,使其询问其中一个问题。