我正在通过应用程序上下文将数据从我的iOS应用程序传输到Watch扩展程序。我想发送一个我创建的自定义对象(名为 WeatherReport )。
let context = ["report" : WeatherReport]
WCSession.defaultSession().updateApplicationContext(context)
但是,我收到以下错误:
WeatherReport 类型的值不符合预期字典 值类型'AnyObject'
我想知道为什么我无法将自定义对象设置为我尝试作为applicationContext传递的字典中的值。
答案 0 :(得分:1)
即使您可以通过编译器错误,也会出现运行时错误。 WCSession词典只能包含property list types,它们只是基本类型,如字符串,数字,数据等。
如果您确实要发送自定义对象,则必须先将其序列化。更好的解决方案是将对象转换为plist字典(每个属性都成为字典中的键值)。