Yes.
- Use Adobe XMP SDK.
Read the metadata from the image when you open it using:
SXMPFiles myFile;
ok = myFile.OpenFile(filename, kXMP_UnknownFile, opts);
myFile.GetXMP(_meta); // _meta is a data member of the class that represents your photo (probably a subclass of NSDocument).
When saving the image, write the image content, then write
_meta
to the output file using SXMPFiles.PutXMP(...), and then set specific metadata entries that you like.
See Adobe XMP programming guide for more details about reading and writing XMP metadata.