- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个循环遍历包含字符串或字典的数组并为类型为 [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/
我在 Swift 中使用字典,它需要保存不同类型的值,尽管键几乎都是字符串。这在 Objective-C 中非常容易,但 Swift 通常非常有用的类型安全似乎使这变得更加困难。 我一直在使用 [St
我有一个循环遍历包含字符串或字典的数组并为类型为 [String:AnyObject] 的新字典设置值的函数,使用原始数组中的值作为键。 sections是一组自定义 Section对象及其方法 ge
我正在尝试转换这段 ojb-c 代码: MPMovieFinishReason finishReason = [notification.userInfo[MPMoviePlayerPlaybackD
根据 Dictionary 上的标题文档在 Swift 中: A hash-based mapping from Key to Value instances. Also a collection o
大家好,我有大麻烦了。这是我的代码: let listOfQuestionsAndAnswers = ["Who’s Paul?": "An American", "Who’s Joao?": "A
我正致力于从 Objective-C 教程转换此委托(delegate)协议(protocol)函数,但在尝试通过使用下标返回基于键的值来访问字典中的值时遇到错误。我不太确定这里的错误是什么意思。任何
我尝试将一些 objective-c 代码重写为 swift。现在我得到一个非常奇怪的错误。我在 playgroud 中尝试了代码,完全没有受到其他代码的影响。 这是我要翻译的部分: NSDictio
当我从 Xcode 6 beta 4 切换到 beta 5 时,我在引用我的 plays 变量时遇到此错误(Int 不可转换为“DictionaryIndex”)。我不知道如何解决这个问题。 这是代码
我正在尝试制作一个非常简单的字典,将字符串映射到 Swift 中的字符串数组。代码如下所示: class FirstViewController: UIViewController { var
我是一名优秀的程序员,十分优秀!