gpt4 book ai didi

ios - 使用自定义枚举作为值在 Swift 中创建字典 'on-the-fly'

转载 作者:搜寻专家 更新时间:2023-11-01 06:10:09 26 4
gpt4 key购买 nike

我正在使用 performSegueWithIdentifier:sender: 方法,我想通过 sender 参数传递几个参数。在 Objective-C 中,我使用 @{"myKey": myValue} 语法即时创建了一个 NSDictionary。

我在 Swift 中尝试了几种方法,但编译器总是给我这样的错误:'AnyObject?'没有名为 {'Element' 或 'Key'} 的成员

如何在 Swift 中重现预期的行为?谢谢!

编辑:这是我的代码:

self.stopCamera()
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.performSegueWithIdentifier("backCameraVCtoFrontCameraVC", sender: [("image", image), ("fitler", filter)])
})

最佳答案

您的语法正在创建一个元组数组:

[("image", image),  ("fitler", filter)]

你需要:

["image": image, "filter": filter]

如评论中所述,filter 是自定义枚举 WDFilterType。您不能将它放在 NSDictionary 中,因为 WDFilterType 不是 AnyObject。解决办法是把rawValue放到字典里,在另一端重构。

["image": image, "filter": filter.rawValue]

然后在接收端:

if let dict = sender as? NSDictionary {
let filter = WDFilterType(rawValue: (dict["filter"] as Int))
}

在这种情况下,过滤器将是一个可选的 (WDFilterType?),必须展开。

关于ios - 使用自定义枚举作为值在 Swift 中创建字典 'on-the-fly',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27460028/

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