gpt4 book ai didi

swift - 将 JSValue 转换为类型化数组

转载 作者:行者123 更新时间:2023-11-30 10:28:18 25 4
gpt4 key购买 nike

我正在编写一个 tvos 应用程序,它有一个函数,我的 tvml 使用对象数组调用该函数。

如何正确地将 json 转换为某种类型/接口(interface)的数组?

// This type is generated from my TypeScript types
struct Video: Codable {
let title: String

enum CodingKeys: String, CodingKey {
case title
}
}

{
func appController(_ appController: TVApplicationController, evaluateAppJavaScriptIn jsContext: JSContext) {
let playVideo : @convention(block) (Int, JSValue) -> Void = {
(start, json) -> Void in
// How do I properly cast the json to an array of Videos?
let playlist = json;

for video in playlist {
// here I would like to access video.title
print(video)
}
}

jsContext.setObject(unsafeBitCast(playVideo, to: AnyObject.self),
forKeyedSubscript: "playVideo" as (NSCopying & NSObjectProtocol))
}
}

PS:我是一个 swift/objc 新手。

最佳答案

我想我已经明白了。看来我只需要使用 AnyHashable

let playlist = json.toArray() as! [[AnyHashable:Any]];

for video in playlist {
print(video[AnyHashable("title")])
}

虽然这仍然没有使用我定义的类型

关于swift - 将 JSValue 转换为类型化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688166/

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