CGFloat只是对float或double的typedef定义,在64位机器上,CGFloat定义为double类型,在32位机器上为float.
在xcode中按住Command键,点击CGFloat,可跳转至CGbase.h文件CGFloat的定义处。
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
# define CGFLOAT_IS_DOUBLE 1
# define CGFLOAT_MIN DBL_MIN
# define CGFLOAT_MAX DBL_MAX
#else
# define CGFLOAT_TYPE float
# define CGFLOAT_IS_DOUBLE 0
# define CGFLOAT_MIN FLT_MIN
# define CGFLOAT_MAX FLT_MAX
#endif
/* Definition of the `CGFloat' type and `CGFLOAT_DEFINED'. */
typedefCGFLOAT_TYPE CGFloat;
#define CGFLOAT_DEFINED 1
同样的,
NSInteger为long或int的typedef,
NSUInteger为unsigned long或unsigned int的typedef。
#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedeflong NSInteger;
typedefunsignedlong NSUInteger;
#else
typedefint NSInteger;
typedefunsignedint NSUInteger;
#endif
本文深入探讨了Objective-C与Swift编程语言中整型数据类型的使用,着重介绍了NSInteger与NSUInteger的区别与应用,帮助开发者更好地掌握这两种数据类型在不同场景下的运用。
1018

被折叠的 条评论
为什么被折叠?



