From 80b00483846ce30c9b895b106a69767a102fc0f1 Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Tue, 27 Jan 2015 10:56:19 -0500 Subject: [PATCH] CB-8351 ios: Stop using now-deprecated [NSData base64EncodedString] --- src/ios/CDVCamera.m | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ios/CDVCamera.m b/src/ios/CDVCamera.m index 20954a2..37bc716 100644 --- a/src/ios/CDVCamera.m +++ b/src/ios/CDVCamera.m @@ -36,6 +36,14 @@ static NSSet* org_apache_cordova_validArrowDirections; +static NSString* toBase64(NSData* data) { + SEL s1 = NSSelectorFromString(@"cdv_base64EncodedString"); + SEL s2 = NSSelectorFromString(@"base64EncodedString"); + SEL realSel = [data respondsToSelector:s1] ? s1 : s2; + NSString* (*func)(id, SEL) = (void *)[data methodForSelector:realSel]; + return func(data, realSel); +} + @implementation CDVPictureOptions + (instancetype) createFromTakePictureArguments:(CDVInvokedUrlCommand*)command @@ -398,7 +406,7 @@ static NSSet* org_apache_cordova_validArrowDirections; NSData* data = [self processImage:image info:info options:options]; if (data) { - result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[data base64EncodedString]]; + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:toBase64(data)]; } } break; @@ -600,7 +608,7 @@ static NSSet* org_apache_cordova_validArrowDirections; break; case DestinationTypeDataUrl: { - result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[self.data base64EncodedString]]; + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:toBase64(self.data)]; } break; case DestinationTypeNativeUri: