iOSの一部のライブラリがCベースのAPIを提供しているのはなぜですか?たとえば、コアグラフィックライブラリはCベースのAPIによって提供されます。しかし、Appleがそれをした理由は理解できません。
さらに、[[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を使用するのでしょうか。