iOS 编程之使用Precompile Prefix Header】的更多相关文章

一:为什么Xcode6没有自动创建Precompile Prefix Header 我们在写项目的时候,大部分宏定义,头文件导入都在Precompile Prefix Header文件里面.在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被阉割掉了,原因可以参考下面的链接: http://stackoverflow.com/questions/24158648/why-isnt-projectname-prefix-pch-crea…
一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到,xcode6居然干掉pch文件了. 为什么xcode6没有自己主动创建pch文件呢? 简单地看:我们在写项目的时候,大部分宏定义,头文件导入都在这里,Xcode6去掉Precompile Prefix Header的主要原因可能在于Prefix Header大大的添加了Build的时间.没有了Prefix Header之后就要通过手动@import来手动导入头文件了,在失去了编程便利性的同一时候也减少了Build的时间…
转载:  http://blog.csdn.net/iosdevtip/article/details/40918353 一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到,xcode6竟然干掉pch文件了. 为什么xcode6没有自动创建pch文件呢? 简单地看:我们在写项目的时候,大部分宏定义,头文件导入都在这里,Xcode6去掉Precompile Prefix Header的主要原因可能在于Prefix Header大大的增加了Build的时间.没有了Prefi…
Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上给程序员带来了编程的便利性.但是在Xcode6中去掉Precompile Prefix Header文件.   Xcode6去掉Precompile Prefi…
1. 添加Prefix Header 注: Xcode 6苹果默认去掉prefix Header, 用以提高原文件的复用性, 便于迁移. 并且可以一定程度上减少Build Time. 解决办法: (1). 在工程中添加一个pch文件, 命名 XXX-Prefix.pch. (2). 设置Build Setting 为'Prefix Header' 添加路径 $(SRCROOT)/桌面文件夹/PrefixHeader.pch Precompile Prefix Header 设置为YES后, pc…
参考资料: http://blog.csdn.net/lwjok2007/article/details/46385595 http://www.tuicool.com/articles/beURbe http://blog.csdn.net/gjt19910817/article/details/7200702   作用:将一些常用的头文件和宏定义写到里面,就像一个全局变量一样,在需要的文件中就可以访问里面预编译文件中的信息. ⚠:预编译头文件大大增加了build的时间,没有预编译头文件的话,…
我们在使用 Prefix Header 预编译文件时有时会遇到如下的报错 clang: error: no such file or directory: '/Users/linus/Dropbox/Apps/My App/Projekt/My App/SlideMenu/SlideMenu-Prefix.pch' clang: error: no input files Command /Applications/Xcode.app/Contents/Developer/Toolchains/…
在XCode6新建项目时,不再自动创建头文件,因此我们需要手动添加. 点击我们的项目->Build Settings -> all -> 搜索“prefix” -> 修改prefix header的值,如下图所示: 项目名称:UIAlertView-Add textField 头文件:UIAlertViewHeader.h 如何新建头文件?很简单,只需要在新建文件时选择"Header File"即可,如下图所示: 博文作者:GarveyCalvin 博文出处:h…
声明:本文翻译自AppCoda网站的文章:What You Need to Begin iOS Programming?,作者是创建者Simon Ng.如有异议,请联系博主.   更新:帖子已经重新被更新过,以便能更好的兼容Xcode 5和iOS 7.       至今为止,已经超过6000位读者加入了这个iOS免费教程.首先,我要感谢这些加入我们社区的朋友.在我们正式开始iOS编程之前,让我们先通过这个开发工具来创建你的第一个app程序.      1. 要有一台Mac机器     是的,你需…
IOS编程之User Interface基础 目录 概述 相关概念 常见问题 状态栏的隐藏 应用图标的设置 概述 IOS用户界面是APP呈现给用户最直观.最常用的方式,因此学会用户界面的编程是学习IOS编程很重要而且不可缺少的一部分:用户界面的实现方式可以分为纯代码.纯界面和代码+界面:纯代码实现的界面,在现在是比较不推崇的,因为用纯代码编写的界面难于维护,会使开发人员花费很多的时间去调整UI界面,但是纯代码可以实现很多特殊的效果:纯界面,往往其所能实现的功能是较于局限的,如用于说明的文本或图片…
IOS编程之多线程 目录 概述——对多线程的理解 IOS中实现多线程的三种方式 NSThread 线程创建 线程的同步与锁 线程间的交互 线程的操作方法 NSOperation and NSOperationQueue GCD(Grand Central Dispatch) 线程间的通信 解决多个线程同时访问同一个内存资源的问题 多线程的运用 卖火车票 对多线程底层的可能实现的猜测 概述——对多线程的理解 为了避免在主线程中执行一些任务时可能会出现异常而卡死,我们可以把这些任务放到新的线程中进行…
iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版) 很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化. 在iOS7以前是可以通过Mac地址来实现这个功能的,但是iOS7(包含)以后是无法获得Mac地址的:苹果官方推荐使用UUID,但是每次随着APP的卸载重装,UUID会随之发生变化,那该如何处理呢? 我们需要一个能在app卸载重装后不会改变的值,而keyChain恰巧就可以做到.配合UUID就可以实现了!让…
IOS编程教程(八):在你的应用程序添加启动画面   虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中.不需要任何编码.你只需要做的是设置一些配置. 什么是闪屏 对于那些新学代码的人,可能没有听说过“闪屏”把,让我先作一个简单的解释.闪屏是常见于iOS应用程序,以及其他桌面应用程序.这是你启动一个应用程序时,你看到的第一个画面.通常情况下,初始屏幕是一个覆盖整个屏幕的图像,消失后加载主屏幕.下图显示了几种闪屏: 简单闪屏(开始页面) 闪屏的主要目的是为了让用户知道你…
iOS编程之前 更新:帖子已经重新被更新过,以便能更好的兼容Xcode 5和iOS 7.       至今为止,已经超过6000位读者加入了这个iOS免费教程.首先,我要感谢这些加入我们社区的朋友.在我们正式开始iOS编程之前,让我们先通过这个开发工具来创建你的第一个app程序.      1. 要有一台Mac机器     是的,你需要一台Mac电脑.这是开发IOS编程最基本的要求.要想开发一个iPhone(或者iPad)软件,你首先得有一台基于Intel处理器的Mac机器,装载着Mac OS…
转自:http://www.myext.cn/other/a_30922.html 比较日期大小是任何编程语言都会经常遇到的问题,再iOS编程中,通常用NSDate对象来存储一个时间(包括日期和时间.时区),而且 NSDate类提供了compare方法来进行时间的比较,但有时不想那么精确的知道两个日期的大小(默认会比较到秒),可以用下面的实现方法: +(int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay{…
我最近翻译了Big Nerd Ranch的<iOS编程(第6版)>.我用了大半年时间,尽可能做到通顺易懂.不足之处请大家多多指正.感谢辛苦审校的丁道骏同学. 这本书得过Jolt大奖,原书在美国亚马逊书店排名iOS编程类榜首.前几版反响都不错(第5版也是我翻译的),希望第6版不会叫大家失望. 京东当当天猫都有卖,我查了下,天猫最便宜:https://detail.tmall.com/item.htm?spm=a230r.1.14.40.15fe2a61d0oPtv&id=59159809…
定义:描述 Foundation 框架类在标准的网络传输协议下,用 URLs 连接因特网并与服务器交互的一整套体系. 支持的传输协议: File Transfer Protocol (ftp://) Hypertext Transfer Protocol (http://) Hypertext Transfer Protocol with encryption (https://) Local file URLs (file:///) Data URLs (data://) 结构图 网络系统模块…
开发iOS程序需要使用 Objective-C 语言和Cocoa Touch框架.Objective-C 源于 C 语言,是 C 语言的扩展. Cocoa Touch框架是一个Objective-C类的集合.本篇文章用来介绍一些Objective-C基础知识. 对象 假设有一场聚会.该聚会有若干特有的属性,例如聚会的名称,日期和一根受邀请的名单.此外,还有“聚会”需要做些事情,比如向受邀请者发送一封提醒邮件,或者取消聚会. 如果使用C语言,那么我们可以定义一个 结构体 ,用于保存这场聚会的数据类…
从今天起想走进IOS架构的大门,一直不屑于学习第三方框架,觉得框架也是一点点代码给垒起来的,只要掌握了代码就可以了,殊不知垒代码的过程才是最重要的,而这个过程又岂是一朝一夕就能达到完美境界的,达到完美没有捷径,但是学习第三方框架无疑会让自己以更少的时间达到目的. 所以学习好的框架绝对是成功路上的铺路石. 今天稍微理解了下IOS的编程思想,在这里做个笔记先,以后的练习才是王道: 1. 链式编程思想: 就像管道,上一步的输出作为下一步的输入,也就是前一步的返回值作为后一步的调用对象,这样可以让所有的…
iOS的AVFoundation框架提供了基本的音视频播放工具,我们基本上可以靠其中提供的类完成绝大部分的音视频播放任务.但是在音频播放的输出音量的处理上,苹果的策略比较保守.尽管AVPlayer和AVPAudiolayerzhe这些类提供了音量调节功能,但这些音量控制属于App级别的控制.好处就是音量调节独立于系统音量,调节大小时不会影响系统音量.但有时候我们可能希望修改系统音量,以免在调节声音的时候,如果系统音量过小,App调节音量效果不明显.一般来说要调节系统音量会有以下方法: 请注意:修…
在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能运行之类的警告. 有代码洁癖的孩子们非常想消除他们, 今天就让我们来一次Fuck 警告.! 首先学会主要的语句 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" 这里写出现警告的代码 #pragma clang diagnostic pop 这样就消除了方法弃用的警告. 同理,…
方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件拷贝到项目中,直接把全部.h和.m文件拖到XCode项目中就可以. 注意: 1. 假设第三方类库引用了一些系统自带类库,那么在项目中还须要额外引用那些类库. 2. 假设当前的项目启用了ARC,而引用的第三方类库未使用ARC.那还须要在项目信息的Targets – Build Parses 里找到第三方类库的.m文件.并为它们加上-fno-objc-arc标记. 3. 对于在未启用ARC的项目用引用使用了ARC的第三方类库.…
允许使用较长的描述尽量不要使用缩写,而是将完整的意思写出来.源于代码的维护可能会被不同文化背景的programmer阅读 适当的命名前缀,比如给变量,协议等,不要给方法加前缀 方法命名规则一般以小写字母开头然后中间如果有其他单词第一个首字母大写,比如:fileExistsAtPath:isDirectory: 也有例外的情况,比如使用有名的缩写做前缀TIFFRepresentation (NSImage). 函数和常量的名字以所属类的缩写为前缀然后中间单词首字母大写,比如NSRunAlertPa…
阅读博客 在现在这个碎片化阅读流行的年代,博客的风头早已被微博盖过.而我却坚持写作博客,并且大量地阅读同行的iOS开发博客.博客的文章长度通常在3000字左右,许多iOS开发知识都至少需要这样的篇幅才能完整地讲解清楚.并且博客相对于书籍来说,并没有较长的出版发行时间,所以阅读博客对于获取最新的iOS开发知识有着非常良好的效果. 我自己精心整理了国内40多位iOS开发博主的博客地址列表:https://github.com/tangqiaoboy/iOSBlogCN,希望大家都能培养起阅读博客的习…
文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑  JXHypnosisViewController.m 修改  loadView 方法,向  view 中添加一个 UITextField 对象: #import "JXHypnosisViewController.h" #import "JXHypnosisView.h" @interface JXHypnosisViewController () @end…
UIGestureRecognizer 对象会截取本应由视图处理的触摸事件.当某个UIGestureRecognizer对象识别出特定的手势后,就会向指定的对象发送指定的消息.iOS SDK默认提供若干中UIGestureRecoginezer对象.本章我们将继续更新 JXTouchTracker ,借助由iOS SDK提供的三种 UIGestureRecogniezer对象,用户可以选择.移动.删除线条. UIGestureRecognizer子类 在为应用添加手势识别功能时,需要针对特定的手…
我们知道 UITabBarController 对象,可以通过使用该对象,用户可以切换不同的屏幕.当要切换的各个屏幕之间没有相互依存关系的时候,该对象可以很好的完成任务.但是当多个屏幕互有关系的时候,就要使用另一种控制器 UINavigationController . 事实上,基本上在所有的 APP 中,必不可少的两种控制器. 我们以 iOS 自带的 设置 应用为例,设置应用拥有多个互有关联的窗口,我们称之为这种界面为 垂直界面 . 下面我们将使用 UINavigationController…
上个项目我们完成了 JXHomepwner 简单的应用展示,项目地址.本节我们需要在上节项目基础上,增加一些响应用户操作.包括添加,删除和移动表格. 编辑模式 UITableView 有一个名为  editing 的属性,如果将其设置为  YES , UITableView 就会进入编辑模式.在编辑模式下,用户可以管理 UITableView 中的表格行,我们可以添加.删除和移动等操作.但是编辑模式没有听过修改行的内容的功能. 首先要更新界面,使用户可以将 UITableView 对象设置为编辑…
视图控制器是  UIViewController 类或其子类对象.每个视图控制器都负责管理一个视图层次结构,包括创建视图层级结构中的视图并处理相关用户事件,以及将整个视图层次结构添加到应用窗口. 创建一个程序,并将上节  JXHypnosisView 类导入到工程中. 创建 UIViewController 子类 打开工程,创建一个  UIViewController  子类文件,并将其命名为  JXHypnosisViewController UIViewController 的 view 属…
我们继续之前的 Hypnosister 应用,当用户开始触摸的时候,圆形的颜色会改变. 首先,在 JXHypnosisView 头文件中声明一个属性,用来表示圆形的颜色. #import "JXHypnosisView.h" @interface JXHypnosisView () /** 颜色 */ @property (nonatomic,strong) UIColor * circleColor; @end @implementation JXHypnosisView - (in…