我正在使用WatchKit构建一个应用程序,并希望使用我在课堂上的PFObjects数据填充表格,但是我收到了这个错误:
由于未捕获的异常而终止应用 'NSInvalidUnarchiveOperationException',原因:'这个解码器会 仅解码采用NSSecureCoding的类。 “PFObject”类有 不采用它。'
遇到与this post
相同的问题答案 0 :(得分:3)
您是否考虑过向采用NSSecureCoding协议的PFObject添加Swift扩展?
我没有尝试过这个动作但是在给出错误信息的情况下期望这个工作似乎是合理的。
推荐行动
为了符合NSSecureCoding:
不覆盖initWithCoder的对象:可以在不做任何更改的情况下符合NSSecureCoding(假设它是另一个符合的类的子类)。
一个覆盖initWithCoder的对象:必须使用decodeObjectOfClass:forKey:方法解码任何封闭的对象。例如:
SWIFT
let obj = decoder.decodeObjectOfClass(MyClass.self, forKey: "myKey")
此外,该类必须覆盖其 supportsSecureCoding 方法才能返回true。
如果使用Objective-C,那么类别似乎是一个合适的解决方案。
答案 1 :(得分:1)
在手表的界面控制器中,只需再次设置呼叫Parse的凭证:
[Parse setApplicationId:@"APPID" clientKey:@"CLIENTKEY"];
并为手表创建一个新的PFQuery。沟通是否失败并不重要。