2015-05-21 14 views
6

buduję aplikację używając WatchKit i chciałby wypełnić tabelę z danymi z PFObjects mam w klasie, ale mam ten błąd:analizowania i watchkit przedłużenie

Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'This decoder will only decode classes that adopt NSSecureCoding. Class 'PFObject' does not adopt it.'

ten sam problem jak this post

Odpowiedz

3

Czy rozważałeś dodanie rozszerzenia Swift do PFObject, który przyjmuje protokół NSSecureCoding?

Nie próbowałem tej akcji, ale wydaje się rozsądne oczekiwać, że to zadziała, biorąc pod uwagę komunikat o błędzie.

Zalecane działanie

w celu dostosowania się do NSSecureCoding:

Obiekt, który nie zastępują initWithCoder: może spełniać NSSecureCoding bez zmian (zakładając, że jest podklasą innej klasy zgodnym).

Obiekt, który zastępuje initWithCoder: musi dekodować dowolne zamknięte obiekty, używając metody decodeObjectOfClass: forKey :. Na przykład:

SWIFT

let obj = decoder.decodeObjectOfClass(MyClass.self, forKey: "myKey") 

Ponadto klasa musi zastąpić swoją metodę supportsSecureCoding wrócić prawdziwe.

Jeśli używasz Objective-C, kategoria wydaje się być odpowiednim rozwiązaniem.

1

W kontrolera interfejsu zegarka wystarczy ustawić zadzwonić poświadczenia analizowania znowu:

[Parse setApplicationId:@"APPID" clientKey:@"CLIENTKEY"]; 

i utworzyć nowy PFQuery tylko dla zegarka. Nie ma znaczenia, czy komunikacja nie powiedzie się, czy nie.

Powiązane problemy