swift - 类型 'CustomObject' 的值不符合预期的字典值类型 'AnyObject'

标签 swift watchos-2 watchconnectivity

我正在通过应用程序上下文将数据从 iOS 应用程序传输到其 Watch 扩展。我想发送我创建的自定义对象(名为WeatherReport)。

let context = ["report" : WeatherReport]
WCSession.defaultSession().updateApplicationContext(context)

但是,我收到以下错误:

Value of type WeatherReport does not conform toe expected dictionary value type 'AnyObject'

我想知道为什么我无法将自定义对象设置为我尝试作为 applicationContext 传递的字典中的值。

最佳答案

即使您能够克服编译器错误,您也会遇到运行时错误。 WCSession 字典只能包含 property list types ,这些只是基本类型,如字符串、数字、数据等。

如果您确实想发送自定义对象,则必须先将其序列化。更好的解决方案可能是将您的对象转换为 plist 字典(每个属性成为字典中的键值)。

关于swift - 类型 'CustomObject' 的值不符合预期的字典值类型 'AnyObject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37230251/

相关文章:

swift - 在 watchOS Storyboard中叠加图像并自定义 x、y 位置

ios - 通过 sendMessage 发送一个巨大的字典 - WatchKit

ios - 使用各种结构调用 func

swift - Swift 中的索引 CollectionView

cocoapods - 使用 Cocoapods + WatchOS 2 目标

ios - presentMediaPlayerControllerWithURL 不适用于 google tts API

ios - 为什么 SwiftUI 教程中没有显示 Image 对象?

watchkit - WatchConnectivity transferFile 问题( watch -> iphone)

ios - Swift 等待异步返回

swift - Xcode Swift 3 计时器错误