共享框架中的CGPoint和CGRect

时间:2015-12-10 09:22:10

标签: ios macos frameworks core-graphics

我正在编写一个框架,我想在 iOS MacOS 项目中使用它。此框架的一部分使用CGPointCGRect,虽然我可以为两个目标引用CoreGraphics,因为MacOS使用NSPointNSRect我遇到了编译器错误。

编写可互换使用CGPointNSPoint的共享框架的推荐方法是什么?我猜这是可能的,因为CoreGraphics可以包含在MacOS或iOS项目中,它将编译时没有错误,并且基于NSPointCGPoint的方法。

1 个答案:

答案 0 :(得分:1)

不知道推荐的方式是什么,但这是一个建议。

查找NSPoint的定义,您会发现:

typedef CGPoint NSPoint;

,同样适用于NSRectNSSize。那么至少在10.11上,它们可能在某些时候是不同的定义,但它们始终是相同的struct,并且结构相等性成立。

所以,只需使用CG*编写您的库,并使用.hCG*的{​​{1}}以及.h的操作系统NS*。 (也许写一个构建阶段,从iOS构建OS X .h - 所以这两个保持同步和正确。)

HTH