Ios 与词典接轨

Ios 与词典接轨,ios,swift,dictionary,segue,Ios,Swift,Dictionary,Segue,另一个问题应该很简单,但我又被难倒了 我已通过登录创建了词典 它充满了价值。现在我想切换到一个新的视图控制器,并随身携带数据 所以我设立了 typealias JSONDict = [String:AnyObject] func prepareForSegue(segue: UIStoryboardSegue, sender: JSONDict!) { if (segue.identifier == "toHome"){

另一个问题应该很简单,但我又被难倒了

我已通过登录创建了词典

它充满了价值。现在我想切换到一个新的视图控制器,并随身携带数据

所以我设立了

typealias JSONDict = [String:AnyObject]




func prepareForSegue(segue: UIStoryboardSegue, sender: JSONDict!) {
                if (segue.identifier == "toHome"){

                    var svc = segue.destinationViewController as! OtherViewController
                    svc.toPass2 = parsed!
解析显示为JSONDict-一切似乎都很好

在我设置的OtherViewcontroller上捕捉它:

var toPass2:JSONDict = JSONDict()
这对我来说是一个非常愉快的过程

但是当我
println(“检查数据:\(toPass2)”)
我得到了
[:]

没什么。 在我看来,我已经建造了它——但什么也没有发生。我可以传递个人价值观,但我想做的就是随身携带字典

我还对未解析的数据字符串做了同样的尝试,结果也是零


您的
OtherViewController

中的任何帮助都值得感谢,请尝试以下操作:

class OtherViewController: UIViewController {
    var toPass2: JSONDict? {
        didSet {
            println(toPass2)
        }
    }
}

试着用
var-toPass2:JSONDict=JSONDict()替换
var-toPass2:JSONDict?
尝试一下,还是没有乐趣。你的想法是基于var toPass2:JSONDict=JSONDict()创建一个新的字典,而不是接受分段的数据?是的,这是我首先想到的。但我认为,即使是你的解决方案也应该有效,因为新字典创建后会传递分段数据。。。所以它覆盖了它。。。但是在你通过它之前,你确定你的字典里有东西吗?是的,我肯定它在那里-我可以把它打印到控制台上,这样我就知道它的全部内容了。我想我的解决方案也会奏效。如果我尝试你的-那么如果让add2=self.toPass2[“address”]as,我也会得到错误?字符串找不到接受提供参数的下标的重载。然而,if语句在原始视图控制器中工作良好。这是一个奇怪的原因,当我设置演示项目时它工作:
typealias JSONDict=[String:AnyObject]
,在prepareforsgue中:
let detailVC=segue.destinationViewController as!DetailViewController detailVC.json=[“key1”:“value1”,“key2”:“value”]
,在detailVC:
var json:JSONDict?
-
println(json)
打印:可选([“key1”:value1,“key2”:value]),正确!你是说println(toPass2)我试着把它打印出来什么也得不到。我有我的var toPass2:JSONDict?在视图外加载,只需在视图控制器中尝试设置您的
OtherViewController
,如上所述。无视图加载。什么都没有。只有里面的这4行…还要确保你在故事板中将segue的标识符正确命名为“toHome”,这样viewcontroller才能真正做好准备如果你做了所有必须做的事情,它就会起作用!:)好的,我添加了(将其更改为Pass2)运行它并获得:setValue:forUndefinedKey:::该类不符合密钥usernamelab的键值编码