I followed How to save Array to CoreData? to create a Transformable field in my data model, and have saved records of that type to CloudKit. I would now like to access this data from a web app. How can I deserialize it?
The data looks like this in the JS object response:
YnBsaXN0MDDUAQIDBAWKi4xYJG9iamVjdHNYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3CvED8GB0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4RVJG51bGzSCAkKC1YkY2xhc3NaTlMub2JqZWN0c4A+rxA8DA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHgAKAA4AEgAWABoAHgAiACYAKgAuADIANgA6AD4AQgBGAEoATgBSAFYAWgBeAGIAZgBqAG4AcgB2AHoAfgCCAIYAigCOAJIAlgCaAJ4AogCmAKoArgCyALYAugC+AMIAxgDKAM4A0gDWANoA3gDiAOYA6gDuAPIA9Iz+ChKQAAAAAIz+rvBuAAAAAIz+ShMwAAAAAI7+NhhwAAAAAI7+YXh8AAAAAI7+YF8YAAAAAI79qBWAAAAAAIz+Uds6AAAAAIz+dRGaAAAAAI79v+awAAAAAIz+EOhMAAAAAI79muLgAAAAAI7+2fcpgAAAAIz+hwSYAAAAAIz+W1zMAAAAAIz+bdJ8AAAAAI7+ZfB8AAAAAI7+kFm6AAAAAIz+mHaYAAAAAIz9C6PAAAAAAI7+Qp4pAAAAAIz+3tR4AAAAAIz+Tl/eAAAAAI7+kd7agAAAAIz+xC5YAAAAAI7+OmbOAAAAAIz+01GcAAAAAIz+enIRAAAAAIz+XrCYAAAAAI79dnTwAAAAAI7+tWjPgAAAAIz+fRwTAAAAAIz93ZtIAAAAAIz+jFAwAAAAAI7+kYxTAAAAAI7+rht5AAAAAIz+EU0XAAAAAI7+hufMAAAAAI7+JPgAAAAAAIz+SL45AAAAAI7+lrQiAAAAAI7+howoAAAAAI7+Ld1AAAAAAI79jN2QAAAAAI7+fFdtAAAAAI7+I7FiAAAAAIz+FCQuAAAAAIz89MOAAAAAAI79NwfgAAAAAI7+I1msAAAAAIz+K2VEAAAAAIz9wqKkAAAAAI7+I4AAAAAAAIz9PhlgAAAAAI78stgAAAAAAI7+KxJYAAAAAIz9CRuAAAAAAIz+BPHIAAAAAIz9+P6EAAAAAIz9nB14AAAAA0oWGh4hYJGNsYXNzZXNaJGNsYXNzbmFtZaKIiVdOU0FycmF5WE5TT2JqZWN0EgABhqBfEA9OU0tleWVkQXJjaGl2ZXLRjY5Ucm9vdIABAAgAEQAaACMALQAyAHQAegB/AIYAkQCTANIA1ADWANgA2gDcAN4A4ADiAOQA5gDoAOoA7ADuAPAA8gD0APYA+AD6APwA/gEAAQIBBAEGAQgBCgEMAQ4BEAESARQBFgEYARoBHAEeASABIgEkASYBKAEqASwBLgEwATIBNAE2ATgBOgE8AT4BQAFCAUQBRgFIAUoBUwFcAWUBbgF3AYABiQGSAZsBpAGtAbYBvwHIAdEB2gHjAewB9QH+AgcCEAIZAiICKwI0Aj0CRgJPAlgCYQJqAnMCfAKFAo4ClwKgAqkCsgK7AsQCzQLWAt8C6ALxAvoDAwMMAxUDHgMnAzADOQNCA0sDVANdA2YDawN0A38DggOKA5MDmAOqA60DsgAAAAAAAAIBAAAAAAAAAI8AAAAAAAAAAAAAAAAAAAO0
I pretty much have the same question as https://developer.apple.com/forums/thread/70286, but there is no answer there either.
Transformables are encoded to binary property lists using
NSKeyedArchiver. For CloudKit they're then base64 encoded. To decode this, you'll need toTo give you an idea of what you have there, you could save that string to a file on a Mac and take a look. If you save it to a file called
array.txt, you can decode it withYou can't read
array.plistjust by looking at it because it uses a binary encoding. But you can convert it to XML to see what's there withThe result can be found here: https://gist.github.com/atomicbird/d5ca330c02cff95bbee7ee5d594f47f4
Looking around, there are some open source parsers for binary plists and for converting
NSKeyedArchiverencoded data to something more useable. I haven't tried any, but that may get you going.