Skip to content

Instantly share code, notes, and snippets.

@adamski
Last active June 22, 2020 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamski/8c15c19e46f7109a097cf7c65e777427 to your computer and use it in GitHub Desktop.
Save adamski/8c15c19e46f7109a097cf7c65e777427 to your computer and use it in GitHub Desktop.
JUCE NSData Utilities
#pragma once
#include <JuceHeader.h>
#if JUCE_IOS
class NSDataUtils
{
public:
static String toString(void* data);
static void* fromString(String dataAsString);
static size_t getSize(void* data);
};
#endi
#import <UIKit/UIKit.h>
#include "NSDataUtils.h"
void* NSDataUtils::fromString (String dataAsString)
{
NSString* dataAsNSString = [NSString stringWithUTF8String:dataAsString.toRawUTF8()];
NSData* nsData = [dataAsNSString dataUsingEncoding:NSUTF8StringEncoding];
return nsData;
}
String NSDataUtils::toString(void* data)
{
NSData* nsData = (NSData*) data;
jassert (nsData != nullptr);
NSString* nsString = [[NSString alloc] initWithData:nsData encoding:NSUTF8StringEncoding];
auto dataString = String([nsString UTF8String]);
[nsString release];
return dataString;
}
size_t NSDataUtils::getSize(void* data)
{
NSData* nsData = (NSData*) data;
return static_cast<size_t>([nsData length]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment