LookinEventHandler.m 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifdef SHOULD_COMPILE_LOOKIN_SERVER
  2. //
  3. // LookinEventHandler.m
  4. // Lookin
  5. //
  6. // Created by Li Kai on 2019/8/7.
  7. // https://lookin.work
  8. //
  9. #import "LookinEventHandler.h"
  10. #import "LookinObject.h"
  11. #import "LookinTuple.h"
  12. #import "NSArray+Lookin.h"
  13. @implementation LookinEventHandler
  14. #pragma mark - <NSCopying>
  15. - (id)copyWithZone:(NSZone *)zone {
  16. LookinEventHandler *newHandler = [[LookinEventHandler allocWithZone:zone] init];
  17. newHandler.handlerType = self.handlerType;
  18. newHandler.eventName = self.eventName;
  19. newHandler.targetActions = [self.targetActions lookin_map:^id(NSUInteger idx, LookinStringTwoTuple *value) {
  20. return value.copy;
  21. }];
  22. newHandler.gestureRecognizerIsEnabled = self.gestureRecognizerIsEnabled;
  23. newHandler.gestureRecognizerDelegator = self.gestureRecognizerDelegator;
  24. newHandler.inheritedRecognizerName = self.inheritedRecognizerName;
  25. newHandler.recognizerIvarTraces = self.recognizerIvarTraces.copy;
  26. newHandler.recognizerOid = self.recognizerOid;
  27. return newHandler;
  28. }
  29. #pragma mark - <NSSecureCoding>
  30. - (void)encodeWithCoder:(NSCoder *)aCoder {
  31. [aCoder encodeInteger:self.handlerType forKey:@"handlerType"];
  32. [aCoder encodeBool:self.gestureRecognizerIsEnabled forKey:@"gestureRecognizerIsEnabled"];
  33. [aCoder encodeObject:self.eventName forKey:@"eventName"];
  34. [aCoder encodeObject:self.gestureRecognizerDelegator forKey:@"gestureRecognizerDelegator"];
  35. [aCoder encodeObject:self.targetActions forKey:@"targetActions"];
  36. [aCoder encodeObject:self.inheritedRecognizerName forKey:@"inheritedRecognizerName"];
  37. [aCoder encodeObject:self.recognizerIvarTraces forKey:@"recognizerIvarTraces"];
  38. [aCoder encodeObject:@(self.recognizerOid) forKey:@"recognizerOid"];
  39. }
  40. - (instancetype)initWithCoder:(NSCoder *)aDecoder {
  41. if (self = [super init]) {
  42. self.handlerType = [aDecoder decodeIntegerForKey:@"handlerType"];
  43. self.gestureRecognizerIsEnabled = [aDecoder decodeBoolForKey:@"gestureRecognizerIsEnabled"];
  44. self.eventName = [aDecoder decodeObjectForKey:@"eventName"];
  45. self.gestureRecognizerDelegator = [aDecoder decodeObjectForKey:@"gestureRecognizerDelegator"];
  46. self.targetActions = [aDecoder decodeObjectForKey:@"targetActions"];
  47. self.inheritedRecognizerName = [aDecoder decodeObjectForKey:@"inheritedRecognizerName"];
  48. self.recognizerIvarTraces = [aDecoder decodeObjectForKey:@"recognizerIvarTraces"];
  49. self.recognizerOid = ((NSNumber *)[aDecoder decodeObjectForKey:@"recognizerOid"]).unsignedLongValue;
  50. }
  51. return self;
  52. }
  53. + (BOOL)supportsSecureCoding {
  54. return YES;
  55. }
  56. @end
  57. #endif /* SHOULD_COMPILE_LOOKIN_SERVER */