// // Created by Yohom Bao on 2019/11/29. // #import #import "CGPointHandler.h" extern BOOL enableLog; void CGPointHandler(NSString* method, id rawArgs, FlutterResult methodResult) { if ([@"CGPoint::getX" isEqualToString:method]) { NSDictionary* args = (NSDictionary*) rawArgs; NSValue *value = (NSValue *) args[@"__this__"]; if (value != nil && (NSNull*) value != [NSNull null]) { CGPoint cgPoint = value.CGPointValue; methodResult(@(cgPoint.x)); } else { methodResult([FlutterError errorWithCode:@"目标对象为nul" message:@"目标对象为nul" details:@"目标对象为nul"]); } } else if ([@"CGPoint::getY" isEqualToString:method]) { NSDictionary* args = (NSDictionary*) rawArgs; NSValue *value = (NSValue *) args[@"__this__"]; if (value != nil && (NSNull*) value != [NSNull null]) { CGPoint cgPoint = value.CGPointValue; methodResult(@(cgPoint.y)); } else { methodResult([FlutterError errorWithCode:@"目标对象为nul" message:@"目标对象为nul" details:@"目标对象为nul"]); } } else if ([@"CGPoint::getX_batch" isEqualToString:method]) { NSDictionary* args = (NSDictionary*) rawArgs; NSArray* value = (NSArray*) args[@"__this__"]; if (value != nil && (NSNull*) value != [NSNull null]) { NSMutableArray* result = [NSMutableArray arrayWithCapacity:value.count]; for (NSValue* pointValue in value) { [result addObject:@(pointValue.CGPointValue.x)]; } methodResult(result); } else { methodResult([FlutterError errorWithCode:@"目标对象为nul" message:@"目标对象为nul" details:@"目标对象为nul"]); } } else if ([@"CGPoint::getY_batch" isEqualToString:method]) { NSDictionary* args = (NSDictionary*) rawArgs; NSArray* value = (NSArray*) args[@"__this__"]; if (value != nil && (NSNull*) value != [NSNull null]) { NSMutableArray* result = [NSMutableArray arrayWithCapacity:value.count]; for (NSValue* pointValue in value) { [result addObject:@(pointValue.CGPointValue.y)]; } methodResult(result); } else { methodResult([FlutterError errorWithCode:@"目标对象为nul" message:@"目标对象为nul" details:@"目标对象为nul"]); } } else if ([@"CGPoint::create" isEqualToString:method]) { NSDictionary* args = (NSDictionary*) rawArgs; NSNumber *x = (NSNumber *) args[@"x"]; NSNumber *y = (NSNumber *) args[@"y"]; CGPoint cgPoint = CGPointMake([x floatValue], [y floatValue]); NSValue *valuePoint = [NSValue valueWithCGPoint:cgPoint]; methodResult(valuePoint); } else if ([@"CGPoint::create_batch" isEqualToString:method]) { NSDictionary* args = (NSDictionary*) rawArgs; NSArray* x = (NSArray*) args[@"x"]; NSArray* y = (NSArray*) args[@"y"]; NSMutableArray* result = [NSMutableArray arrayWithCapacity:x.count]; for (NSUInteger i = 0; i < x.count; i++) { CGPoint cgPoint = CGPointMake([x[i] floatValue], [y[i] floatValue]); NSValue *valuePoint = [NSValue valueWithCGPoint:cgPoint]; [result addObject:valuePoint]; } methodResult(result); } else { methodResult(FlutterMethodNotImplemented); } }