Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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
字典中的Access类-Swift_Swift_Swift Playground - Fatal编程技术网

字典中的Access类-Swift

字典中的Access类-Swift,swift,swift-playground,Swift,Swift Playground,我现在正在写一个程序,包括课堂和字典。我想知道如何在字典中访问类的值。对于下面的代码,我如何使用字典访问test1值。我尝试过使用dict[1].test1,但它不起作用 class test { var tes1 = 1 } var refer = test() var dict = [1:refer] 这是因为下标返回一个可选的链接,所以您必须将其展开-最简单的方法是使用可选链接: dict[1]?.tes1 但您也可以使用可选绑定: if let test = dict[1] {

我现在正在写一个程序,包括课堂和字典。我想知道如何在字典中访问类的值。对于下面的代码,我如何使用字典访问test1值。我尝试过使用dict[1].test1,但它不起作用

class test {
var tes1 = 1
}
var refer = test()
var dict = [1:refer]

这是因为下标返回一个可选的链接,所以您必须将其展开-最简单的方法是使用可选链接:

dict[1]?.tes1
但您也可以使用可选绑定:

if let test = dict[1] {
    let value = test.tes1
}

这是因为下标返回一个可选的链接,所以您必须将其展开-最简单的方法是使用可选链接:

dict[1]?.tes1
但您也可以使用可选绑定:

if let test = dict[1] {
    let value = test.tes1
}

dict[1]行存在一些问题。test1:

首先,字典上的下标返回可选类型,因为可能没有键的值。因此,您需要检查该键是否存在值

其次,在类测试中,您定义了一个变量tes1,但您要求从字典中获取tes1。这可能只是一个o型

要解决这些问题,您的代码应该如下所示:

if let referFromDictionary = dict[1] {
    prinln(referFromDictionary.test1)
}

dict[1]行存在一些问题。test1:

首先,字典上的下标返回可选类型,因为可能没有键的值。因此,您需要检查该键是否存在值

其次,在类测试中,您定义了一个变量tes1,但您要求从字典中获取tes1。这可能只是一个o型

要解决这些问题,您的代码应该如下所示:

if let referFromDictionary = dict[1] {
    prinln(referFromDictionary.test1)
}

你是说你想创建一个字典,它的值是类型a的对象吗?你应该用大写字母开始命名你的类。顺便说一句,你不应该使用测试。旁注:当问问题时,要尽可能全面——你说它不起作用,但你没有说它如何起作用:编译错误、运行时错误、意外结果等等@Antonio谢谢,我下次会这么做!你是说你想创建一个字典,它的值是类型a的对象吗?你应该用大写字母开始命名你的类。顺便说一句,你不应该使用测试。旁注:当问问题时,要尽可能全面——你说它不起作用,但你没有说它如何起作用:编译错误、运行时错误、意外结果等等@Antonio谢谢,我下次会这么做!