我正在开发一个预装了CoreData内容的iOS应用程序。
我正在尝试为Mac OS X命令行创建一个导入程序应用程序,它使用相同的xcdatamodel并导入我可以随实际应用程序一起提供的初始数据。
到目前为止,非常好。
然而,模型中的一个字段是可转换的,我想要存储Bezier路径。不幸的是,Mac OS X使用NSBezierPath,而iOS使用UIBezierPath来存储bezier路径。
在我的OS X项目中,有没有办法在iOS模拟器平台上使用二进制UIBezierPath类(及其头文件)?
我不想将我的项目转换为在模拟器中运行,因为我希望能够从命令行运行它并传递参数。
应该有办法让这项工作,不应该吗?因为模拟器平台是针对Mac的架构编译的,所以没有使用任何GUI组件。
我也在寻找其他(创意?)方法来解决这个问题......或许是自定义的NSValueTransformer,还是UIBezierPath的NSCoding改编的逆向工程?
也许我只是太狭隘,太专注于本质上会变成徒劳的尝试。如果您认为是这样的话,请随时在答案中指出这一点......
答案 0 :(得分:0)
Ken Ferry (Apple engineer from the Cocoa frameworks team):
密钥存档容器格式是 可互换,但无论是否 特定档案是可以互换的 取决于它的内容。显然,如果 一个类只出现在iOS上 和Mac OS X,这是一个问题。对于 任意的个人课程 在两种操作系统上,很难说 任何具体的东西。人们可能 已经利用了新的操作系统 放弃兼容性的某些方面。
如果您的密钥存档包含 完全是基础课,它是 我们的意图是他们应该如此 可在iOS和Mac OS之间互换 X在Mac OS X版本之间。我 不要以为我们有特定的测试 确保它有效,所以,好吧, 如果它不适合某事,请提交一份 错误。
NSBezierPath
是AppKit,所以你必须退回到逆向工程。这可能不会太困难,因为UIBezierPath
和NSBezierPath
可能都依赖于CGPath,但这只是猜测。
答案 1 :(得分:0)
库CKBezierPath模拟适用于iOS的NSBezierPath。没有经过测试,但试一试。 ; - )