最全的Pch文件

//
// PrefixHeader.pch
// JNdefine
//
// Created by Titan on 16/3/15.
// Copyright ? 2016年 pls. All rights reserved.
//

ifndef PrefixHeader_pch

define PrefixHeader_pch

//----------------------INSTALLATION 安裝方法----------------------------

//Added the prefix header file to PROJECT:
//1.Creat a new PCH files and named it with "PrefixHeader.pch"(default name or anything you want) .
//2.Click next and go to Build Settings search Prefix Header.
//3.Double click the blank address and put this address: $(SRCROOT)/$(PROJECT_NAME)/PrefixHeader.pch
//THEN YOU CAN USE THIS IN EVERY FILES IN THIS PROJECT. Good luck.

//如何安裝:
//1.創(chuàng)建新pch文件,默認(rèn)名字即可: "PrefixHeader.pch".
//2.點(diǎn)擊下一步再去Build Settings 搜索Prefix Header.
//3.找到Prefix Header并且雙擊,輸入$(SRCROOT)/$(PROJECT_NAME)/PrefixHeader.pch
//現(xiàn)在你可以在項(xiàng)目內(nèi)任何文件調(diào)用宏定義了,祝一切順利.

// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.

//#endif /* PrefixHeader_pch */

//----------------------ABOUT SCREEN & SIZE 屏幕&尺寸 ----------------------------
/**
iPad Air {{0, 0}, {768, 1024}}
iphone4s {{0, 0}, {320, 480}} 960640
iphone5 5s {{0, 0}, {320, 568}} 1136
640
iphone6 6s {{0, 0}, {375, 667}} 1334750
iphone6Plus 6sPlus {{0, 0}, {414, 736}} 1920
1080
Apple Watch 1.65inches(英寸) 320*640
*/

define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)

define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)

define kTabBarH 49.0f

define kStatusBarH 20.0f

define kNavigationBarH 44.0f

define SCREEN_POINT (float)SCREEN_WIDTH/320.f

define SCREEN_H_POINT (float)SCREEN_HEIGHT/480.f

//判斷是否 Retina屏腺逛、設(shè)備是否iPhone 5、是否是iPad

define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)

/** 判斷是否為iPhone */

define isiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

/** 判斷是否是iPad */

define isiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

/** 判斷是否為iPod */

define isiPod ([[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"])

/** 設(shè)備是否為iPhone 4/4S 分辨率320x480至会,像素640x960栈源,@2x */

define iPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)

/** 設(shè)備是否為iPhone 5C/5/5S 分辨率320x568团秽,像素640x1136易核,@2x */

define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

/** 設(shè)備是否為iPhone 6 分辨率375x667,像素750x1334米碰,@2x */

define iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO)

/** 設(shè)備是否為iPhone 6 Plus 分辨率414x736谷丸,像素1242x2208堡掏,@3x */

define iPhone6P ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO)

//----------------------ABOUT SYSTYM & VERSION 系統(tǒng)與版本 ----------------------------
//Get the OS version. 判斷操作系統(tǒng)版本

define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]

define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])

define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])

//judge the simulator or hardware device 判斷是真機(jī)還是模擬器

if TARGET_OS_IPHONE

//iPhone Device

endif

if TARGET_IPHONE_SIMULATOR

//iPhone Simulator

endif

/** 獲取系統(tǒng)版本 */

define iOS_VERSION ([[[UIDevice currentDevice] systemVersion] floatValue])

define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])

/** 是否為iOS6 */

define iOS6 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0) ? YES : NO)

/** 是否為iOS7 */

define iOS7 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) ? YES : NO)

/** 是否為iOS8 */

define iOS8 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) ? YES : NO)

/** 是否為iOS9 */

define iOS9 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) ? YES : NO)

/** 獲取當(dāng)前語言 */

define kCurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])

//----------------------ABOUT PRINTING LOG 打印日志 ----------------------------
//Using dlog to print while in debug model. 調(diào)試狀態(tài)下打印日志

ifdef DEBUG

define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), PRETTY_FUNCTION, LINE, ##VA_ARGS);

else

define DLog(...)

endif

//Printing while in the debug model and pop an alert. 模式下打印日志,當(dāng)前行 并彈出一個(gè)警告

ifdef DEBUG

define ULog(fmt, ...) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", PRETTY_FUNCTION, LINE] message:[NSString stringWithFormat:fmt, ##VA_ARGS] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }

else

define ULog(...)

endif

/** print 打印rect,size,point */

ifdef DEBUG

define kLogPoint(point) NSLog(@"%s = { x:%.4f, y:%.4f }", #point, point.x, point.y)

define kLogSize(size) NSLog(@"%s = { w:%.4f, h:%.4f }", #size, size.width, size.height)

define kLogRect(rect) NSLog(@"%s = { x:%.4f, y:%.4f, w:%.4f, h:%.4f }", #rect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)

endif

//----------------------ABOUT COLOR 顏色相關(guān) ----------------------------

define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]

define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]

// rgb顏色轉(zhuǎn)換(16進(jìn)制->10進(jìn)制)

define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

//帶有RGBA的顏色設(shè)置

define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]

define kClearColor [UIColor clearColor]

define COLOR_BLUE_ UIColorFromRGB(0x41CEF2)

define COLOR_GRAY_ UIColorFromRGB(0xababab) //171

define COLOR_333 UIColorFromRGB(0x333333) //51

define COLOR_666 UIColorFromRGB(0x666666) //102

define COLOR_888 UIColorFromRGB(0x888888) //136

define COLOR_999 UIColorFromRGB(0x999999) //153

define COLOR_PLACEHOLD_ UIColorFromRGB(0xc5c5c5) //197

define COLOR_RED_ UIColorFromRGB(0xff5400) //紅色

define COLOR_GREEN_ UIColorFromRGB(0x31d8ab)//綠色

define COLOR_YELLOW_ UIColorFromRGB(0xffa200)//黃色

define COLOR_SEPARATE_LINE UIColorFromRGB(0xC8C8C8)//200

define COLOR_LIGHTGRAY COLOR(200, 200, 200, 0.4)//淡灰色

define MAX_WIDTH_10 (SCREEN_WIDTH-20)

define MAX_WIDTH_15 (SCREEN_WIDTH-30)

//----------------------ABOUT IMAGE 圖片 ----------------------------

//LOAD LOCAL IMAGE FILE 讀取本地圖片

define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]]

//DEFINE IMAGE 定義UIImage對(duì)象// imgView.image = IMAGE(@"Default.png");

define IMAGE(A) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:A ofType:nil]]

//DEFINE IMAGE 定義UIImage對(duì)象

define ImageNamed(_pointer) [UIImage imageNamed:[UIUtil imageName:_pointer]]

//BETTER USER THE FIRST TWO WAY, IT PERFORM WELL. 優(yōu)先使用前兩種宏定義,性能高于后面.

//----------------------SOMETHING ELSE 其他 ----------------------------

define intToStr(S) [NSString stringWithFormat:@"%d",S]

//
//#define NotificationWarning(msg) [JDStatusBarNotification showWithStatus:msg dismissAfter:2.0 styleName:JDStatusBarStyleWarning]
//
//#define NotificationError(msg) [JDStatusBarNotification showWithStatus:msg dismissAfter:2.0 styleName:JDStatusBarStyleError]
//
//#define NotificationSuccess(msg) [JDStatusBarNotification showWithStatus:msg dismissAfter:2.0 styleName:JDStatusBarStyleSuccess]

/**

  • the saving objects 存儲(chǔ)對(duì)象
  • @param VALUE V
  • @param KEY K
  • @return
    */

define UserDefaultSetObjectForKey(VALUE,KEY) \

{
[[NSUserDefaults standardUserDefaults] setObject:VALUE forKey:KEY];
[[NSUserDefaults standardUserDefaults] synchronize];
}

/**

  • get the saved objects 獲得存儲(chǔ)的對(duì)象
    */

define UserDefaultObjectForKey(KEY) [[NSUserDefaults standardUserDefaults] objectForKey:KEY]

/**

  • delete objects 刪除對(duì)象
    */

define UserDefaultRemoveObjectForKey(KEY) \

{
[[NSUserDefaults standardUserDefaults] removeObjectForKey:KEY];
[[NSUserDefaults standardUserDefaults] synchronize];
}

define PLIST_TICKET_INFO_EDIT [NSHomeDirectory() stringByAppendingString:@"/Documents/data.plist"] //edit the plist

define TableViewCellDequeueInit(INDETIFIER) [tableView dequeueReusableCellWithIdentifier:(INDETIFIER)];

define TableViewCellDequeue(CELL,CELLCLASS,INDETIFIER) \

{
if (CELL == nil) {
CELL = [[CELLCLASS alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:INDETIFIER];
}
}

define KEYWINDOW [UIApplication sharedApplication].keyWindow

//Show Alert, brackets is the parameters. 宏定義一個(gè)彈窗方法,括號(hào)里面是方法的參數(shù)

define ShowAlert UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning." message:nil delegate:self cancelButtonTitle:@"cancel" otherButtonTitles: @"OK"];[alert show];

endif

//define an API 定義一個(gè)API

define APIURL @"http://www.google.com"

//login the API 登陸API

define APILogin [APIURL stringByAppendingString:@"Login"]

//GCD

define GCDWithGlobal(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)

define GCDWithMain(block) dispatch_async(dispatch_get_main_queue(),block)

//NSUserDefaults 實(shí)例化

define USER_DEFAULT [NSUserDefaults standardUserDefaults]

//單例化 一個(gè)類

define SYNTHESIZE_SINGLETON_FOR_CLASS(classname) \


static classname *shared##classname = nil;
\

  • (classname *)shared##classname
    {
    @synchronized(self)
    {
    if (shared##classname == nil)
    {
    shared##classname = [[self alloc] init];
    }
    }

    return shared##classname;
    }
    \
  • (id)allocWithZone:(NSZone *)zone
    {
    @synchronized(self)
    {
    if (shared##classname == nil)
    {
    shared##classname = [super allocWithZone:zone];
    return shared##classname;
    }
    }

    return nil;
    }
    \
  • (id)copyWithZone:(NSZone *)zone
    {
    return self;
    }

/** 快速查詢一段代碼的執(zhí)行時(shí)間 /
/
* 用法
TICK
do your work here
TOCK
*/

define TICK NSDate *startTime = [NSDate date];

define TOCK NSLog(@"Time:%f", -[startTime timeIntervalSinceNow]);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刨疼,隨后出現(xiàn)的幾起案子泉唁,更是在濱河造成了極大的恐慌鹅龄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亭畜,死亡現(xiàn)場(chǎng)離奇詭異扮休,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拴鸵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門玷坠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人劲藐,你說我怎么就攤上這事八堡。” “怎么了聘芜?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵兄渺,是天一觀的道長。 經(jīng)常有香客問我汰现,道長挂谍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任瞎饲,我火速辦了婚禮口叙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗅战。我一直安慰自己妄田,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布仗哨。 她就那樣靜靜地躺著形庭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪厌漂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天斟珊,我揣著相機(jī)與錄音苇倡,去河邊找鬼。 笑死囤踩,一個(gè)胖子當(dāng)著我的面吹牛旨椒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播堵漱,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼综慎,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了勤庐?” 一聲冷哼從身側(cè)響起示惊,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤好港,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后米罚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钧汹,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年录择,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拔莱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隘竭,死狀恐怖塘秦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情动看,我是刑警寧澤尊剔,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站弧圆,受9級(jí)特大地震影響赋兵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搔预,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一霹期、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拯田,春花似錦历造、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鸭轮,卻和暖如春臣淤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窃爷。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工邑蒋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人按厘。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓医吊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逮京。 傳聞我的和親對(duì)象是個(gè)殘疾皇子卿堂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Demo_github pch文件創(chuàng)建 在工程中新建一個(gè)PCH 文件:New File ->Other ->PCH...
    SkyMing一C閱讀 4,118評(píng)論 5 3
  • 好多地方整合的,如下分享并自用: //傳入兩個(gè)數(shù)懒棉,返回較小值 #define GETMIN(A,B) A < B ...
    六兩閱讀 294評(píng)論 0 0
  • iOS開發(fā)過程中草描,使用的一些常用宏定義 字符串是否為空#define kStringIsEmpty(str) ([...
    goyohol閱讀 5,340評(píng)論 30 85
  • 昨晚夢(mèng)到那個(gè)人了~最近總覺得要放下了览绿,因?yàn)樾睦镅b了個(gè)學(xué)長。但是昨晚還真就夢(mèng)到他……天知道為什么
    會(huì)飛的豬1234閱讀 338評(píng)論 0 0
  • 我以為我和他不一樣,但原來寂寞的時(shí)候揍诽,每個(gè)人都一樣诀蓉。 01 現(xiàn)在是二零一七年九月的第七天。 做了兩個(gè)文案暑脆,改了十三...
    他安閱讀 933評(píng)論 6 4