简体   繁体   中英

Parse and watchkit extension

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

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM