• iOS pch文件配置 2015-08-31 11:13:44
    配置方法如下: (注:本文主要讲解pch文件配置,更多pch详解请百度,下面以Xcode6为例) 首先在xcode工程中创建一个空的pch文件 创建好了以后在项目中配置路径 然后在pzh文件里面导入头文件就OK了 我们...

    配置方法如下:   (注:本文主要讲解pch文件配置,更多pch详解请百度,下面以Xcode6为例)

    首先在xcode工程中创建一个空的pch文件

    创建好了以后在项目中配置路径


    然后在pzh文件里面导入头文件就OK了

    我们可以把一些很好的宏写进一个头文件,在pch文件导入后变成全局宏

    我这里有一些别人写的比较好的宏给大家附上:

    //
    //  JHMacro.h
    //  tata
    //
    //  Created by ios-long on 15-7-3.
    //  Copyright (c) 2015年 ios. All rights reserved.
    //
    
    //快速创建单例单例
    //.h
    #define single_interface(class) + (class *)shared##class;
    
    
    //.m
    // \ 代表下一行也属于宏
    // ## 是分隔符
    #define single_implementation(class) \
    static class *_instance;\
    + (class *)shared##class{\
    if (_instance == nil) {\
    _instance = [[self alloc]init];\
    }\
    return _instance;\
    }\
    \
    + (id)allocWithZone:(struct _NSZone *)zone{\
    static dispatch_once_t onceToken;\
    dispatch_once(&onceToken, ^{\
    _instance = [super allocWithZone:zone];\
    });\
    return _instance;\
    }
    
    #define kMainFrame   [[UIScreen mainScreen] bounds]
    #define kMainWidth    [[UIScreen mainScreen] bounds].size.width
    #define kMainHeight   [[UIScreen mainScreen] bounds].size.height
    
    #define iPhone5 ([UIScreen mainScreen].bounds.size.height==568)
    #define iPhone6 ([UIScreen mainScreen].bounds.size.height==667)
    #define iPhone6Plus ([UIScreen mainScreen].bounds.size.height==736)
    
    #define kDatabase [DatabaseTool sharedDatabaseTool].globalHelper
    /**
     *	@brief	系统版本号
     */
    #define kSystemVersion [[UIDevice currentDevice].systemVersion floatValue]
    
    /**
     *	@brief	调试输出
     */
    //#if JHDebug
    //#    define NSLog(...) NSLog(__VA_ARGS__)
    //#else
    //#    define NSLog(...) {}
    //#endif
    
    //颜色和透明度设置
    #define RGBA(r,g,b,a)               [UIColor colorWithRed:(float)r/255.0f green:(float)g/255.0f blue:(float)b/255.0f alpha:a]
    
    //color
    #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]
    
    
    #define EBusinessModuleKEY @"EBusinessModuleKEY"
    #define IOS_Client_Version @"V1.201500721.1" //IOS客户端版本号,用于区分不同版本之间数据库更新
    /**
     *  新增快捷方式后刷新E商乐中快捷方式列表通知
     */
    #define Refresh_User_ShortCutModule_Notification @"Refresh_User_ShortCutModule_Notification"
    
    
    
    
    //-------------------获取设备大小-------------------------
    //NavBar高度
    #define NavigationBar_HEIGHT 44
    //获取屏幕 宽度、高度
    #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
    #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
    
    //-------------------获取设备大小-------------------------
    
    
    //-------------------打印日志-------------------------
    //DEBUG  模式下打印日志,当前行
    #ifdef DEBUG
    #   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
    #else
    #   define DLog(...)
    #endif
    
    
    //重写NSLog,Debug模式下打印日志和当前行数
    #if DEBUG
    #define NSLog(FORMAT, ...) fprintf(stderr,"\nfunction:%s line:%d content:%s\n", __FUNCTION__, __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
    #else
    #define NSLog(FORMAT, ...) nil
    #endif
    
    //DEBUG  模式下打印日志,当前行 并弹出一个警告
    #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
    
    //---------------------打印日志--------------------------
    
    
    //----------------------系统----------------------------
    
    //获取系统版本
    #define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
    #define CurrentSystemVersion [[UIDevice currentDevice] systemVersion]
    
    //获取当前语言
    #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
    
    //判断是否 Retina屏、设备是否是iPad
    #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
    
    #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    
    
    //判断是真机还是模拟器
    #if TARGET_OS_IPHONE
    //iPhone Device
    #endif
    
    #if TARGET_IPHONE_SIMULATOR
    //iPhone Simulator
    #endif
    
    //检查系统版本
    #define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
    #define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
    #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
    #define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
    #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
    
    #if __IPHONE_7_0 && __IPHONE_OS_VERSION_MAX_ALLOWED >=  __IPHONE_7_0
    #define IS_RUNNING_IOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
    #else
    #define IS_RUNNING_IOS7 NO
    #endif
    //----------------------系统----------------------------
    
    
    
    //----------------------内存----------------------------
    
    //使用ARC和不使用ARC
    #if __has_feature(objc_arc)
    //compiling with ARC
    #else
    // compiling without ARC
    #endif
    
    #pragma mark - common functions
    #define RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }
    
    //释放一个对象
    #define SAFE_DELETE(P) if(P) { [P release], P = nil; }
    
    #define SAFE_RELEASE(x) [x release];x=nil
    
    
    
    //----------------------内存----------------------------
    
    
    //----------------------图片----------------------------
    
    //读取本地图片
    #define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]]
    
    //定义UIImage对象
    #define IMAGE(A) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:A ofType:nil]]
    
    //定义UIImage对象
    #define ImageNamed(_pointer) [UIImage imageNamed:[UIUtil imageName:_pointer]]
    
    //建议使用前两种宏定义,性能高于后者
    //----------------------图片----------------------------
    
    //----------------------颜色类---------------------------
    // rgb颜色转换(16进制->10进制)
    #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的颜色设置
    #define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
    
    //背景色
    #define BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0]
    //深红色
    #define REDBIG [UIColor colorWithRed:219/255.0 green:37/255.0 blue:30/255.0 alpha:1.0]
    //table背景色
    #define TABLECOLOR [UIColor colorWithRed:240/255.0 green:240/255.0 blue:240/255.0 alpha:1.0]
    //表头背景色
    #define BACKTABCOLOR [UIColor colorWithRed:249/255.0 green:249/255.0 blue:249/255.0 alpha:1.0]
    //浅灰色
    #define GRAYQIAN [UIColor colorWithRed:230/255.0 green:230/255.0 blue:230/255.0 alpha:1.0]
    //深灰色
    #define GRAYSHEN [UIColor colorWithRed:150/255.0 green:150/255.0 blue:150/255.0 alpha:1.0]
    //清除背景色
    #define CLEARCOLOR [UIColor clearColor]
    
    #pragma mark - color functions
    #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)]
    
    //----------------------颜色类--------------------------
    

    swift中配置pch    swift调用oc文件,oc混编是需要设置桥接头文件的 


    注:引用pch文件路径代码 $(SRCROOT)/XXX(项目名)/xxxxx.pch(pch文件名称)



    展开全文
  • Swift中设置PCH文件 2019-07-06 19:57:24
    它就是你所期待已久的swift环境下的"pch",其实,就是一个swift文件!在编辑区域,就可以用swift语言进行如OC下的"宏"的定义! Foundation改为UIKit。(时尚,简单,强大) 如果对你有帮助,请关注我哦! 转载于...
  • swift中类似PCH文件的东西 2017-12-01 00:03:34
    在OC中有一个共享很多宏定义的文件那就是PCH然后在SWIFT中没有宏这个东西,那么如何做到有PCH的效果呢???其实很简单就是创建一个文件类名随便取代码如下,不需要配置任何东西就能够实现// // Common.swift // Lease //...
  • 3-01 Swift中的PCH 2017-09-20 14:55:28
    Objective-C中的pch文件是保存宏定义头文件的地方,突然转向swift,有点摸不着头脑。首先,回顾一下Objective-C创建pch文件的方法吧~~~ OC中的PCH文件 ①创建 pch文件 ②在所创建的pch文件中,在 #define 和 #...
  • iOS 项目中添加pch文件 2016-03-21 11:56:54
    1.在项目的supporttng files目录下,新建pch文件: 新建->other->pch->默认路径确定 点击create进入下一步。2.配置pch到项目中: 项目->bulid Setting ->搜索(prefix)(为了找到prefix header选项)->添加 $(SRCROOT...
  • 编译器会自动将pch文件中的头文件,添加到所有的源文件中去。这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性。但是Xcode6以后新创建的项目中默认不再创...
  • 1.简介 PCH文件是Xcode编程中全局引用共享的文件。可以在这里引入头文件或者宏定义来方便程序中多个文件访问。 ...3. PCH 文件配置 a. 找到Project > Build Settings搜索 “Prefix Header...
  • 对iOS项目中PCH文件的创建、配置以及使用做了详细的介绍
  • 最近开新项目了,又当复习下原来的知识了,再搭架子的时候建.pch 还特意度娘了一下,真的是项目做久了,基础配置都忘了…..在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-...
  • Swift 使用pod导入第三类库简单使用 在Swift5.0里,直接使用pod导入第三方类库,不使用桥接...利用桥接文件,达到类似于Objective-C内pch文件的作用 1、创建文件,选择创建Header File,为了区分,将文件命名为xxx...
  • 1.xcode5跟xcode6对比 ...2>xcode5有pch文件,xcode6没有pch文件 3>xcode5的info.plist文件是前面要加上项目名,xcode6直接就是info.plist名字 4>xcode5建成项目默认加载.Frameworks:依赖的框架,xco
  • 如果要更改Info.plist与Prefix.pch文件实际路径,也就是实际文件的位置(不是在工程中的组织路径),需要到Build Settings中修改对应的配置,不然工程就找不到对应的Info.plist与Prefix.pch文件。 报错情况: 1、...
  • 在Xcode6.0已经不默认生成PrefixHeader.pch文件了,而PrefixHeader.pch文件对我们开发带来的便利性是不言而喻的,所以我们怎么在工程中添加PrefixHeader.pch文件呢.  首先.我们创建一个PrefixHeader.pch ...
  • OC调用Swift方法 2018-05-02 15:36:48
    第一步:创建桥接文件第二步:配置桥接文件第三步:创建pch文件配置其路径 第四步:在pch文件中导入如下头文件,注意:import "xxx-Swift.h",这里的xxx就是第二步中的Module name, 注意不要写错了 第...
  • 最近在做一个高仿“百思不得姐”的项目框架,整理项目文件时,因修改了PrefixHeader.pch 和info.plist这两个文件路径产生了报错信息: *'~PrefixHeader.pch'file not found(该文件不能被打开) *'~Info.plist':...
  • OC - Swift 混编详细介绍 2019-05-05 11:06:37
    建一个pch文件用于引入 工程名-swift.h,实现OC访问swift 建一个桥接文件用于引入 OC头文件,实现swift访问OC 1. 创建一个Swift或者是OC的工程 (这里以OC工程为例,操作其实都一样) 创建工程 2. 创建一个...
  • OC工程调用Swift方法 2017-01-11 11:45:08
    2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h” 3.配置工程 设置Defines Module 为Yes 设置Product Module Name 为...
  • 本文主要介绍如何在Swift项目中使用OC的文件以及在OC项目中使用Swift文件
  • 在项目中右键添加一个swift文件,我添加的LearnSwift.swift 添加后Xcode弹出‘是否配置oc桥接头文件’的提示,点确认,系统自动生成一个项目名-Bridging-Header.h的文件,我的是LearnSwift-Bridging-Header.h。 ...
  • swift中使用Objective C代码 2019-02-27 15:33:31
    之前在Objective-C中使用cocoapods或者其他第三方库的时候都需要一个pch文件,以避免在每一个...之前的OC工程中,一般都是把pch文件配置在Build Setting里的Prefix Header,一般设置为“$(SRCROOT)/项目名称/pch文件...
1 2 3 4 5 ... 13
收藏数 255
精华内容 102