我正在学习核心图形,尤其是有关CGContextRef的知识。我的问题是关于不透明数据类型的语法和实现细节(如果可以理解的话)。我知道诸如CGContextRef之类的不透明类型是对内存中某些基础结构的引用(指针?),并且它是不透明的,因为该结构的详细信息对开发人员是隐藏的。

因此,如果我有一个这样声明的变量:CGContextRef context = UIGraphicsGetCurrentContext();为什么上下文在其之前不需要“ *”表示这是引用类型/指针?这种句法奇异性的语义含义是什么?

最佳答案

在符号CGContextRef上单击命令并单击以跳转至CGContext.h中的定义,您将看到原因:

typedef struct CGContext *CGContextRef;


您不必在*变量之前放置context,因为*CGContextRef类型定义的一部分。

关于ios - 核心图形不透明类型,它们是什么以及如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33419615/

10-11 19:12