为什么 iOS 中的某些库提供了基于 C 的 API?例如,Core Graphics 库是由基于 C 的 API 提供的。但是,我无法理解苹果这样做的原因。
而且,[[UIColor red] setStroke]
drawRect中的那种代码:也让我很困惑!如果 Apple 决定使用基于 C 的 API,为什么他们使用面向对象样式的代码来处理图形?
并且CGContextAddLineToPoint()
,例如,接受参数CGContextRef c
。我认为它完全适合使用面向对象的东西。
// current
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 10, 10);
// looks better
CGContext *context = [UIGraphics getCurrentContext]
[context moveToPoint: CGMakePoint(0, 0)] // or [context moveToPointX: 0 y: 0]
[context addLineToPoint: CGMakePoint(10, 10)] // or [context addLineToPointX: 10 y: 10]
那么,为什么 Apple 在某些库上使用基于 C 的 API?