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
Ios Swift 2.0字典下标问题_Ios_Swift_Dictionary_Optional_Subscript - Fatal编程技术网

Ios Swift 2.0字典下标问题

Ios Swift 2.0字典下标问题,ios,swift,dictionary,optional,subscript,Ios,Swift,Dictionary,Optional,Subscript,我已经看了关于使用字典订阅的其他问题,但我没有看到任何与我的情况完全相符的问题。可能是因为我还是个新手,斯威夫特还没有意识到这一点,但无论如何,这是我的设想。我得到的是典型的字符串类型的不能“下标”字典。我在这里看到过关于它是可选的并且需要打开它的帖子,但是当我尝试这样做时,Xcode建议我删除!,我这样做,然后得到下标错误 我看过很多关于swift development的教程,其中很多都使用操场,我从来没有记得在任何教程中看到过任何人必须这样做。所以我在操场上做了同样的尝试,效果很好 以下是

我已经看了关于使用字典订阅的其他问题,但我没有看到任何与我的情况完全相符的问题。可能是因为我还是个新手,斯威夫特还没有意识到这一点,但无论如何,这是我的设想。我得到的是典型的字符串类型的不能“下标”字典。我在这里看到过关于它是可选的并且需要打开它的帖子,但是当我尝试这样做时,Xcode建议我删除!,我这样做,然后得到下标错误

我看过很多关于swift development的教程,其中很多都使用操场,我从来没有记得在任何教程中看到过任何人必须这样做。所以我在操场上做了同样的尝试,效果很好

以下是我在ViewController中的不起作用的内容

 var validFields:Dictionary = ["loanBalanceInput":false,"cashOutInput":false,"appraisedValueInput":false,"interestRateInput":false]  

func validationSuccess(sender:UITextField){
            sender.backgroundColor = green
        switch sender {
            case loanBalanceInput:
                validFields["loanBalanceInput"] = true
               break
          default:
            break
    }
}
我所做的是创建一个字符串字典,该字典引用文本字段及其验证状态,以跟踪它们是否已被验证。其概念是,当字典中的所有内容都为真时,我可以激活“计算”按钮

然而,我得到了“不能用字符串类型的索引为字典类型的值下标”错误。。。然而,这个代码在操场上工作

 var validatedFields:Dictionary = ["loanBalanceInput":false,"cashOutInput":false,"appraisedValueInput":false,"interestRateInput":false]
 validatedFields["loanBalanceInput"]
 validatedFields["loanBalanceInput"] = true
我不明白这里发生了什么。是因为这是可选的吗

@IBOutlet weak var loanBalanceInput: UITextField!

我没把它放在我的开关里?不过,我并不是想了解loanBalanceInput的价值,我只是检查它是否是发送者

通常,Swift
字典
声明还需要包含键和值的类型,如

var validFields: Dictionary<String,Bool> = [" ... 
var validFields:Dictionary=[“。。。

但由于编译器可以推断类型,所以只需删除注释。

通常,字典声明还需要包含键和值的类型,如
var validFields:dictionary=…
,但由于编译器可以推断类型,所以只需删除注释。哦,WTF。我是个白痴。我仍然不明白为什么它在游乐场b中工作但这不是真正的问题。我让它推断类型,它工作了。谢谢!如果你想添加你的建议作为答案,我可以接受。谢谢。不客气,我做到了