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

时间:2016-01-13 06:12:26

标签: ios prefix scalar cgfloat

我搜索过CGFloat,我发现它只是一个类型,就像NSInteger和NSUInteger一样。但我想知道为什么它有CG前缀,即Core Graphics。

3 个答案:

答案 0 :(得分:2)

如您所知,typedef CGFloatCoreGraphics框架中定义,因此它的前缀为"CG"。但是,NSInteger中定义了typedef <objc/NSObjcRuntime.h>它被用作Foundation框架,它来自NextSTEP的前身Cocoa

Apple SDK的Naming Notationinitial of it's framework作为所有Class的前缀,例如ABPersonViewController框架中定义的AddressBook

答案 1 :(得分:0)

因为Obj-C只有一个名称空间,为了避免名称空间冲突,全局对象和结构都附加了前缀。 Apple保留使用所有两个字符前缀的权利,而三个或更多字母前缀可供公众使用。由于CGFloat已在Core Graphics库中实施,因此它使用CG prefix。请参阅Apple的Obj-C约定文档:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Conventions/Conventions.html

答案 2 :(得分:0)

因为它是核心图形库的一部分,而不是 Cocoa 。它代表核心图形Core Graphics框架是基于C语言的API,它基于Quartz高级绘图引擎。