Я искал про CGFloat, и я обнаружил, что это просто typedef, как NSInteger и NSUInteger. Но я хочу знать, почему у него есть префикс CG, т. Е. Core Graphics.Почему CGFloat имеет префикс CG, а не префикс NS?
ответ
Поскольку Obj-C
имеет только одно пространство имен, чтобы избежать конфликтов пространства имен, глобальные объекты и структуры имеют прикрепленные к ним префиксы. Apple оставляет за собой право использовать все префиксы двух символов, в то время как три или более префикса букв открыты для публичного использования. Поскольку CGFloat
реализован в библиотеке Core Graphics
, он использует CG prefix
. Обратитесь к документации компании Apple для Obj-C
конвенций: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Conventions/Conventions.html
Поскольку его часть Core Graphics библиотеки, не какао. Он обозначает Core Graphics. Структура Core Graphics - это API на основе C, основанный на усовершенствованном графическом движке Quartz.
Как вы знаете, ЬурейеЕ CGFloat
определяется в CoreGraphics
рамках, так что префикс "CG"
.Однако, то ЬурейеЕ NSInteger
определяется в <objc/NSObjcRuntime.h>
и он служил в качестве Foundation
структуры, которая исходит от NextSTEP
, предшественника Cocoa
.
Naming Notation
из компании Apple SDK принимает initial of it's framework
в качестве префикса всех Class
, таких как ABPersonViewController
определено в AddressBook
рамках.
См. Http://stackoverflow.com/questions/6702923/do-nsdouble-nsfloat-or-other-types-than-nsinteger-exist –