Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么CGFloat有CG前缀而不是NS前缀?_Ios_Prefix_Scalar_Cgfloat - Fatal编程技术网

Ios 为什么CGFloat有CG前缀而不是NS前缀?

Ios 为什么CGFloat有CG前缀而不是NS前缀?,ios,prefix,scalar,cgfloat,Ios,Prefix,Scalar,Cgfloat,我搜索了CGFloat,发现它只是一个typedef,就像NSInteger和NSInteger一样。但我想知道为什么它有CG前缀,即核心图形 因为Obj-C只有一个名称空间,为了避免名称空间冲突,全局对象和结构都附加了前缀。苹果保留使用所有两个字符前缀的权利,而三个或三个以上的字母前缀可供公众使用。由于CGFloat是在Core Graphics库中实现的,因此它使用CG前缀。请参阅苹果的文档,了解Obj-C惯例:,因为它是核心图形库的一部分,而不是Cocoa。它代表核心图形。该框架是一个基于

我搜索了CGFloat,发现它只是一个typedef,就像NSInteger和NSInteger一样。但我想知道为什么它有CG前缀,即核心图形

因为Obj-C只有一个名称空间,为了避免名称空间冲突,全局对象和结构都附加了前缀。苹果保留使用所有两个字符前缀的权利,而三个或三个以上的字母前缀可供公众使用。由于
CGFloat
是在
Core Graphics
库中实现的,因此它使用
CG前缀
。请参阅苹果的文档,了解
Obj-C
惯例:

,因为它是核心图形库的一部分,而不是Cocoa。它代表核心图形。该框架是一个基于C的API,基于Quartz advanced绘图引擎。

如您所知,typedef
CGFloat
是在
CoreGraphics
框架中定义的,因此它的前缀是
“CG”
。然而,typedef
NSInteger
是在
中定义的,它被用作
基础
框架,它来自
NextSTEP
,是
Cocoa
的前身

Apple SDK的
命名符号
将其框架的
首字母
作为所有
的前缀,例如
地址簿
框架中定义的
ABPersonViewController

请参见: