gpt4 book ai didi

ios - 字符串不可转换为 DictionaryIndex

转载 作者:行者123 更新时间:2023-11-29 02:12:59 24 4
gpt4 key购买 nike

我有一个循环遍历包含字符串或字典的数组并为类型为 [String:AnyObject] 的新字典设置值的函数,使用原始数组中的值作为键。 sections是一组自定义 Section对象及其方法 getValue总是返回 String .

func getSectionVariables() -> [String:AnyObject] {
var variables = [String:AnyObject]()

for section in sections {
if let name = section.name as? String {
variables[name] = section.getValue()
} else if let name = section.name as? [String:String] {
for (k, v) in name {
if variables[k] == nil {
variables[k] = [String:String]()
}

if var dict = variables[k] as? [String:String] {
dict[v] = section.getValue() //This works, but of course copies variables by value and doesn't set variables[k]
}

(variables[k] as? [String:String])![v] = section.getValue() //Can't get this line to compile
}
}
}

return variables
}

如果我尝试投 variables[k]作为[String:String] ,编译器坚持 String is not convertible to DictionaryIndex<String, AnyObject> .我不确定为什么向下转换不起作用以及为什么编译器认为我正在尝试使用备用字典下标语法。

请注意,该项目使用的是 Swift 1.1。

最佳答案

普遍的问题是“转换表达式”不会产生“左值”,因此无法分配给它。例如,考虑以下代码的简化版本:

var x = "initial"
var y : AnyObject? = x
(y as? String) = "change"

你会在最后一行得到一个错误,因为你不能赋值给一个“cast expression”。

关于ios - 字符串不可转换为 DictionaryIndex<String, AnyObject>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29080713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com