[quote=157024:@Jason King]Encode/Decode using declares:
Add a constant “FoundationLib = Foundation.framework”
[code]
Function decodeBase64(aText as text) As Text
declare function initWithBase64EncodedString lib FoundationLib selector “initWithBase64EncodedString:options:” _
(obj_id as ptr, str as CFStringRef, options as Integer) as ptr
declare function alloc lib FoundationLib selector “alloc” (clsRef as ptr) as ptr
declare function NSClassFromString lib FoundationLib (clsName as CFStringRef) as ptr
dim mData as ptr = initWithBase64EncodedString(alloc(NSClassFromString(“NSData”)), aText, 1)
const NSUTF8StringEncoding = 4
declare function initWithData lib FoundationLib selector “initWithData:encoding:” (obj_id as ptr, data as ptr, encoding as Integer) as CFStringRef
Return initWithData(alloc(NSClassFromString(“NSString”)), mData, NSUTF8StringEncoding)
End Function[/code]
[code]
Function encodeBase64(aText as Text) As Text
declare function dataUsingEncoding lib FoundationLib selector “dataUsingEncoding:” (obj_id as ptr, encoding as Integer) as ptr
declare function stringWithString lib FoundationLib selector “stringWithString:” (obj_id as ptr, str as CFStringRef) as ptr
declare function NSClassFromString lib FoundationLib (clsName as CFStringRef) as ptr
const NSUTF8StringEncoding = 4
dim str as Ptr = stringWithString(NSClassFromString(“NSString”), aText)
dim mData as ptr = dataUsingEncoding(str,NSUTF8StringEncoding)
declare function base64EncodedStringWithOptions lib FoundationLib selector “base64EncodedStringWithOptions:” _
(obj_id as ptr, options as Integer) as CFStringRef
Return base64EncodedStringWithOptions(mData,1)
End Function
[/code][/quote]
Hi there all,
I just tried this in iOS project but I can’t get the compiler to accept the ‘Call’. Can anybody see what I do wrong? I tried directly wither intermedium Var, but same problem This Item does not exist". The DecodeBase64 is a Module called Base64
Case 14, 15, 16 //BLOB fields. Convert to Base64
Var mb As Xojo.Core.MemoryBlock
mb = rs.IdxField©.NativeValue
Var t As Text = Text.EncodeBase64(mb.Data)
d.Value(rs.Field©.Name) = t