问题
I am building an app using WatchKit and would like to populate a Table with data from PFObjects I have in a class but I got this error:
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'This decoder will only decode classes that adopt NSSecureCoding. Class 'PFObject' does not adopt it.'
Having the same problem as this post
回答1:
Have you considered adding a Swift extension to PFObject that adopts the NSSecureCoding protocol?
I haven't tried this action but it seems reasonable to expect this to work given the error message.
Recommended Action
In order to conform to NSSecureCoding:
An object that does not override initWithCoder: can conform to NSSecureCoding without any changes (assuming that it is a subclass of another class that conforms).
An object that does override initWithCoder: must decode any enclosed objects using the decodeObjectOfClass:forKey: method. For example:
SWIFT
let obj = decoder.decodeObjectOfClass(MyClass.self, forKey: "myKey")
In addition, the class must override its supportsSecureCoding method to return true.
If using Objective-C then a category seems like a suitable solution.
回答2:
In the watch's interface controller simply set call Parse's credentials again:
[Parse setApplicationId:@"APPID" clientKey:@"CLIENTKEY"];
and create a new PFQuery just for the watch. It doesn't matter if communication fails or not.
来源:https://stackoverflow.com/questions/30366934/parse-and-watchkit-extension