Here is my sample code in objective C
-(NSString *)getImageString : (unsigned char *) charValue : (unsigned long) sizeOfBytes {
uint8_t commandbyte[]={ };
uint8_t _allBytes[(sizeOfBytes + sizeof(commandbyte))];
memcpy(_allBytes, charValue, sizeOfBytes);
NSMutableData *ImageData = [[NSMutableData alloc]init];
[ImageData appendBytes:_allBytes length:sizeof(_allBytes)];
NSString *base64String=[self base64forData:ImageData];
return base64String;
}
- (NSString*)base64forData:(NSData*)theData {
const uint8_t* input = (const uint8_t*)[theData bytes];
NSInteger length = [theData length];
static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4];
uint8_t* output = (uint8_t*)data.mutableBytes;
NSInteger i;
for (i=0; i < length; i += 3) {
NSInteger value = 0;
NSInteger j;
for (j = i; j < (i + 3); j++) {
value <<= 8;
if (j < length) {
value |= (0xFF & input[j]);
}
}
NSInteger theIndex = (i / 3) * 4;
output[theIndex + 0] = table[(value >> 18) & 0x3F];
output[theIndex + 1] = table[(value >> 12) & 0x3F];
output[theIndex + 2] = (i + 1) < length ? table[(value >> 6) & 0x3F] : '=';
output[theIndex + 3] = (i + 2) < length ? table[(value >> 0) & 0x3F] : '=';
}
return [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
}
In this example i used to get the bytes
using the sizeOfBytes
and then appendBytes
to NSMutableData
.
Below method is used to convert data
to base64
:
- (NSString*)base64forData:(NSData*)theData
It is very simple in objective C, but when i tried in swift there other concepts for pointers like UnsafeMutablePointer
, UnsafePointer
etc.
How to convert to swift 3.0 ??
Can you Guys please suggest me the usage of pointers in swift
You can convert bytes array to base64String by using following way
let base64String = data!.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With