在Mac OS X和iOS的Core Data中存储bezier路径

时间:2011-03-28 09:09:56

标签: core-data command-line nsbezierpath ios-simulator

我正在开发一个预装了CoreData内容的iOS应用程序。

我正在尝试为Mac OS X命令行创建一个导入程序应用程序,它使用相同的xcdatamodel并导入我可以随实际应用程序一起提供的初始数据。

到目前为止,非常好。

然而,模型中的一个字段是可转换的,我想要存储Bezier路径。不幸的是,Mac OS X使用NSBezierPath,而iOS使用UIBezierPath来存储bezier路径。

在我的OS X项目中,有没有办法在iOS模拟器平台上使用二进制UIBezierPath类(及其头文件)? 我不想将我的项目转换为在模拟器中运行,因为我希望能够从命令行运行它并传递参数。
应该有办法让这项工作,不应该吗?因为模拟器平台是针对Mac的架构编译的,所以没有使用任何GUI组件。

我也在寻找其他(创意?)方法来解决这个问题......或许是自定义的NSValueTransformer,还是UIBezierPath的NSCoding改编的逆向工程?
也许我只是太狭隘,太专注于本质上会变成徒劳的尝试。如果您认为是这样的话,请随时在答案中指出这一点......

2 个答案:

答案 0 :(得分:0)

Ken Ferry (Apple engineer from the Cocoa frameworks team)

  

密钥存档容器格式是   可互换,但无论是否   特定档案是可以互换的   取决于它的内容。显然,如果   一个类只出现在iOS上   和Mac OS X,这是一个问题。对于   任意的个人课程   在两种操作系统上,很难说   任何具体的东西。人们可能   已经利用了新的操作系统   放弃兼容性的某些方面。

     

如果您的密钥存档包含   完全是基础课,它是   我们的意图是他们应该如此   可在iOS和Mac OS之间互换   X在Mac OS X版本之间。我   不要以为我们有特定的测试   确保它有效,所以,好吧,   如果它不适合某事,请提交一份   错误。

NSBezierPath是AppKit,所以你必须退回到逆向工程。这可能不会太困难,因为UIBezierPathNSBezierPath可能都依赖于CGPath,但这只是猜测。

答案 1 :(得分:0)

CKBezierPath模拟适用于iOS的NSBezierPath。没有经过测试,但试一试。 ; - )