LookinEventHandler.m 2.6 KB

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