iOS 日常开发细节(代码篇)

1.宏定义

// ...表示宏定义的可变参数
// __VA_ARGS__:表示函数里面的可变参数
#ifdef DEBUG
#define QYLog(...) NSLog(__VA_ARGS__)
#else
#define QYLog(...)
#endif
// 偏好设置存储的好处
// 1.不需要关心文件名
// 2.快速进行键值对存储

// 补充:控制器的view
// UITabBarController控制器的view在一创建控制器的时候就会加载view
// UIViewController的view,才是懒加载。

2.枚举 enum,NS_ENUM,NS_OPTIONS

在iOS6和Mac OS 10.8以后Apple引入了两个宏NS_ENUM,NS_OPTIONS来重新定义C语言风格的enum,实际上是将enum定义和typedef合二为一,并且采用不同的宏来从代码角度来区分。

enum{   
    UIViewAnimationTransitionNone,  
    UIViewAnimationTransitionFlipFromLeft,  
    UIViewAnimationTransitionFlipFromRight,  
    UIViewAnimationTransitionCurlUp,  
    UIViewAnimationTransitionCurlDown,  
} UIViewAnimationTransition;  

替换为:

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {  
    UIViewAnimationTransitionNone,//默认从0开始  
    UIViewAnimationTransitionFlipFromLeft,  
    UIViewAnimationTransitionFlipFromRight,  
    UIViewAnimationTransitionCurlUp,  
    UIViewAnimationTransitionCurlDown,  
};  

位移操作枚举定义

 
enum {  
    UIViewAutoresizingNone                 = 0,  
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,  
    UIViewAutoresizingFlexibleWidth        = 1 << 1,  
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,  
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,  
    UIViewAutoresizingFlexibleHeight       = 1 << 4,  
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5  
};  
typedef NSUInteger UIViewAutoresizing; // UIViewAutoresizing相当于NSUInteger的一个别名使用。  

替换为:

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {  
    UIViewAutoresizingNone                 = 0,  
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,  
    UIViewAutoresizingFlexibleWidth        = 1 << 1,  
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,  
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,  
    UIViewAutoresizingFlexibleHeight       = 1 << 4,  
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5  
};  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、宏 宏的常见用法:1、常见字符串抽成宏2、常见代码抽成宏 二、const 常量 翻译 const :常数,...
    艳晓阅读 1,636评论 0 4
  • 参考:http://blog.csdn.net/annkie/article/details/9877643 一般...
    GShining阅读 536评论 0 0
  • 在日常开发中,枚举的使用可以提升我们的代码易读性,一般枚举的几个写法,我在此整理一下,梳理梳理自己的思路,如果有理...
    IUVO阅读 1,375评论 1 0
  • 枚举值: 它是一个整形(int) ,并且它不参加内存的占用和释放 枚举定义变量即可直接使用,不用初始化 三种类型的...
    Moker_C阅读 503评论 0 1
  • 0、背景 在iOS6和Mac OS 10.8以后Apple引入了两个宏来重新定义这两个枚举类型,实际上是将enum...
    Lovell_阅读 235评论 0 0