ios - 此解码器只会解码采用 NSSecureCoding 的类

标签 ios objective-c watchkit apple-watch watchos

从 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/

相关文章:

ios - Quickblox:如何删除特定时间段内的用户签到

ios - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[MKUserLocation标记]:

ios - 如何将按钮添加到 Apple WatchKit Long Look 通知

ios - 自动布局有问题——简单的计算器应用程序

ios - 我正在尝试整合 facebook 登录,它显示 "view controller does not conform protocol"

objective-c - 从另一个类访问 ccsprite

watchkit - Watch App的生命周期是什么?

ios - Watchkit-应用程序 : handleWatchKitExtensionRequest error

objective-c - NSURLConnection 代表

iphone - 如何移动 UIToolbar 项目?