从 AppDelegate 我称之为:
-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply{
[SavedSearchesHack getAllMatches:^(MatchCollection * _Nonnull matchCollection) {
reply(@{@"response" : matchCollection});
}];
}
然后我在调用回复时收到此错误:
*** 由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“此解码器将仅解码采用 NSSecureCoding 的类。 'Test.MatchCollection' 类不采用它。
public class func openParentApplication(userInfo: [NSObject : AnyObject],
reply: (([NSObject : AnyObject], NSError?) -> Void)?) -> Bool
只要我简单地返回像“test”这样的对象而不是 MatchCollection,我就不会出错。
最佳答案
加入 .h
文件
// just the protocol
@interface PacketH: NSObject<NSSecureCoding>
加入
.m
文件+ (BOOL)supportsSecureCoding {
return YES;
}
关于ios - 此解码器只会解码采用 NSSecureCoding 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38589123/