There seems to be more apps, expecially from Apple, Inc. that share document files. Assuming that some of these use CoreData, some questions arrise. Our own Mac app uses CoreData and was innitially done before IOS even existed. Although many managed objects and entities may use the same data, many do not. Two of the biggest offenders are colors and BezierPaths. NSBezierPath and UIBezierPath appear to be functionally equivalent, but with minor differences such as constructors using radians vs. degrees. Surely this could have been reconciled to allow either -- but it wasn't. My theory is that early IOS creators figured there would be little crossover between Mac and IOS, due to the limited processing power of the iPhone processor chips. Of course, that is no longer the case, and more and more capabilities (e.g., AVFoundation) are showing up on both platforms.
So how does one convert to a storage system that supports both platforms? If starting from scratch, I would have used my own CPBezierPath (CP for "CrossPlatform"} to containn the CGPathRef and accompanying properties, with #ifdefs where needed for the platform specific variants. Maybe we can still do that by doing mapped CoreData migration.
Another scary approach would be to try to define NSBezierPath on iOS and UIBezierPath on Mac. Unfortunately, we are not privy to the specific data structures of these elements. It would certainly be helpful if Apple, Inc. were to provide a blessed definition and translation between these (and a few other objects).
In our case, we would like to have compatible drawing capability, especially now that the Apple Pencil is moving down to the lower iPads. We would like to draw on one platform and see the results on both it and the other, maybe connected by Multipeer. We also have a rather complex CALayer stack, but that is mostly compatible.
So far, I haven't seem much discussion about cross-platform CoreData compatibility. I would welcome comments on the subject.