美文网首页
iOS开发 个别关键字的选用

iOS开发 个别关键字的选用

作者: 就_这样 | 来源:发表于2017-12-05 13:47 被阅读0次

CGfloat和float的区别?

现在上架的app都要求支持64位系统,那么CGFloat和float的区别就在这里.command+左键点击CGFloat.

typedef CGFLOAT_TYPE CGFloat;

这里可以看到CGFloat是CGFLOAT_TYPE的宏定义,那么这个又是什么?

  #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

这段话的意思就是,64位系统下,CGFLOAT是double类型,32位系统下是float类型.CGFloat能够保证你的代码在64位系统下也不容易出错,所以你的代码应该尽量使用CGFloat.尽管他可能造成一些多余的消耗.不过能保证安全.

应该使用FOUNDATION_EXPORT还是#define来定义常量?

一般iOS我们定义常量的方法有两种,来看下面例子
我的.h文件

FOUNDATION_EXPORT NSString * const kMyConstantString;  
FOUNDATION_EXPORT NSString * const kMyConstantString2;

.m文件是这样定义的

NSString * const kMyConstantString = @"Hello";
NSString * const kMyConstantString2 = @"World";

还有一种是常用的#define方法了

#define kMyConstantString @"Hello"

有什么区别呢?

使用第一种方法在检测字符串的值是否相等的时候更快.对于第一种你可以直接使用(stringInstance == MyFirstConstant)来比较,而define则使用的是这种.([stringInstance isEqualToString:MyFirstConstant])
哪个效率高,显而易见了.第一种直接比较的是指针地址,而第二个则是一一比较字符串的每一个字符是否相等.

static inline function是干嘛的?

static inline 可以定义一个函数,相当于宏定义函数一样,不同的是static inline 只能定义简单的函数,定义复杂函数会不被编译器执行。 static inline 也可以使用UIKIT_STATIC_INLINE(由系统定义的宏)

#define UIKIT_STATIC_INLINE static inline

相关文章

  • iOS开发 个别关键字的选用

    CGfloat和float的区别? 现在上架的app都要求支持64位系统,那么CGFloat和float的区别就在...

  • iOS属性关键字

    iOS属性关键字 引言 学习 iOS 开发的人,大多都绕不开属性关键字—— assign,weak,unsafe_...

  • Cocoapods相关

    关键字: Cocoapods, iOS, 开发, 移动,Swift, 报错 error: RPC failed; ...

  • 优秀文章收集

    iOS 开发技术栈与进阶 iOS 从0到1搭建高可用App框架 iOS weak 关键字漫谈 开发者所需要知道的 ...

  • iOS开发路线简述(一)

    1、iOS开发环境 1.1 开发环境 标准的配置是MacOSX+Xcode。 MacOSX的话首选用苹果电脑,Ma...

  • iOS定时器的添加方式及其与runloop的关系

    定时器是iOS开发中频繁使用的开发技能,存在多种创建方式,可根据实际需求选用;iOS中的定时器大致分为这几类: N...

  • IOS延迟处理

    启动页面需要延迟跳转到其他界面,目前选用下面方法 浅谈iOS开发中方法延迟执行的几种方式

  • iOS-归纳

    iOS内存分区,堆区 栈区等 内存管理 属性关键字、内存分区总结 iOS- 数据存储iOS开发数据库-FMDBiO...

  • iOS 内存管理(3)-属性词基本讲解

    引言 学习 iOS 开发的人,大多都绕不开属性关键字—— assign,weak,unsafe_unretaine...

  • iOS开发---属性关键字详解

    iOS开发—属性关键字详解 @Property 什么是属性? 属性(property)是Objective-C的一...

网友评论

      本文标题:iOS开发 个别关键字的选用

      本文链接:https://www.haomeiwen.com/subject/izgqixtx.html