我搜索过CGFloat,我发现它只是一个类型,就像NSInteger和NSUInteger一样。但我想知道为什么它有CG前缀,即Core Graphics。
答案 0 :(得分:2)
如您所知,typedef CGFloat
在CoreGraphics
框架中定义,因此它的前缀为"CG"
。但是,NSInteger
中定义了typedef <objc/NSObjcRuntime.h>
它被用作Foundation
框架,它来自NextSTEP
的前身Cocoa
。
Apple SDK的Naming Notation
将initial 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高级绘图引擎。