我应该使用CGMutablePath还是NSBezierPath?

时间:2017-11-19 09:32:30

标签: swift core-graphics

我已经开始在我的应用中添加图表了。最初我使用CGMutablePath()做了这个,但后来重构为NSBezierPath()。我发现我应该使用它会让人感到困惑,但是在NSBezierPath()中给出了“NS”,我想知道这是否是旧的方式,我应该使用CGMutable路径。

有人可以告诉我是否应该使用其中一种吗?如果是,那么你如何决定使用哪个?对于我正在做的事情,NSBezierPath生成了更简单的代码。

我正在使用SWIFT 4和XCode 9

由于 史蒂芬

1 个答案:

答案 0 :(得分:1)

CG代表核心图形,是C风格的图形API。因为C它不是面向对象的,并且需要传递指针来处理图形上下文或CGPath之类的东西,尽管在Swift 3中这会被一些语法糖所困扰,因为编译器现在为你做这个并使api看起来面向对象虽然不是(看看目标c对任何CG功能的swift文档,你可以清楚地看到差异)。 NS函数是围绕CG函数的面向对象的目标C包装器。您可以在许多Apple API中看到这一点,例如CFString(C版本)和NSString(目标C版本)。我相信Apple的建议是使用最高级别的API,除非你有其他理由不这样做,尽管人们经常忽略这个规则。例如,我几乎总是看到人们使用GCD来访问主线程而不是NSOperationQueue。使用您喜欢的API;它与客观C,C或C ++中的快速并不重要。