1.宏定義
// ...表示宏定義的可變參數(shù)
// __VA_ARGS__:表示函數(shù)里面的可變參數(shù)
#ifdef DEBUG
#define QYLog(...) NSLog(__VA_ARGS__)
#else
#define QYLog(...)
#endif
// 偏好設(shè)置存儲(chǔ)的好處
// 1.不需要關(guān)心文件名
// 2.快速進(jìn)行鍵值對(duì)存儲(chǔ)
// 補(bǔ)充:控制器的view
// UITabBarController控制器的view在一創(chuàng)建控制器的時(shí)候就會(huì)加載view
// UIViewController的view,才是懶加載。
2.枚舉 enum,NS_ENUM,NS_OPTIONS
在iOS6和Mac OS 10.8以后Apple引入了兩個(gè)宏NS_ENUM,NS_OPTIONS來(lái)重新定義C語(yǔ)言風(fēng)格的enum,實(shí)際上是將enum定義和typedef合二為一,并且采用不同的宏來(lái)從代碼角度來(lái)區(qū)分。
enum{
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;
替換為:
typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone,//默認(rèn)從0開(kāi)始
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相當(dāng)于NSUInteger的一個(gè)別名使用。
替換為:
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
};