CGContextRef与NSGraphicsContext的区别。

4
我刚开始学习OSX编程,遇到一个问题不知道应该使用CGContextRef还是NSGraphicsContext
它们有什么区别?
我几乎不知道CG或NS之间的区别[以及它们与Cocoa的关系](我尝试过谷歌搜索但没有结果)。
有人能解释一下我何时应该使用其中之一,或者主要区别是什么吗?
甚至可以给我一篇文章链接。 我只是在网络搜索中找不到任何东西。
我知道我在一个问题中问了很多问题,所以提前感谢!
2个回答

2

如果您正在阅读此内容,NSGraphicsContext是基于CGContextRef的图形上下文;与大多数CG<->NS关系相似,NS对应物反映了CG的基本功能。

但是,NSGraphicsContext允许您做更多的事情,例如使用“graphicsContextWithGraphicsPort”从图形端口创建上下文。


至少,那就是我能说的。 - A O

0

基于CG的命令使用类似C语法的语法结构。而基于NS的命令则采用Objective-C风格的接口。

- (void)drawRect:(NSRect)nr
{

    NSGraphicsContext* gc = [NSGraphicsContext currentContext];
    CGContextRef cggc = [gc CGContext];

    CGPathRef cgp = CGPathCreateMutable();
// do CGPath stuff
    CGContextFlush(cggc);


    NSBezierPath* nzb = [[NSBezierPath alloc] init];

// Do NSPath stuff

    [gc flushGraphics];

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接