(三十三)Xcode项目的重要工程文件
1.Supporting files内有一个Xxx-Info.plist文件(旧版本Xcode的配置文件叫Info.plist)。因此自定义的plist不要带Info关键词。
这个plist是系统的全局配置,不能删除。
Bundle display name是软件的名称,需要注意的是修改完软件名称要先Clean工程,然后卸载原来的App再运行。
InfoDictionary version是版本号,用于发布程序,每次更新的版本号必须比原来的大。
Main storyboard file base name是最主要的storyboard,也可以在BuildSettings里面改,其实BuildSettings里面改的就是plist。(真实名称是有CF前缀的)。
Supported interface orientations是旋转方式。
2.pch文件:其中的内容能被项目中的其他源文件共享和访问。
1.因此可以在内部写一些全局的宏,项目中的其他文件不必包含就可使用。
2.如果整个项目都用某个模型,可以在pch中引入这个模型的头文件。
3.可以开启或者关闭全局的日志输出(通过#define定义新的日志输出函数,发布的时候可以让它为空)。
将NSLog重新定义:__VA_ARGS__是代替...的专用写法,注意两侧的双划线。...代表可以传入无数个参数。
#define MyLog(...) NSLog(__VA_ARGS__)
直接通过Xcode运行的代码,系统会自动定义一个叫DEBUG的宏,因此使用条件编译#ifdef #else #endif来设定日志输出:
#ifdef DEBUG // 调试阶段
#define MyLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define MyLog(...)
#endif
.m文件都定义了一个宏__OBJC__(注意两侧是双划线),因此要只让.m文件引入,可以如下这样写:
#ifdef __OBJC__
#import <...>
#endif
细节:注意将上面的内容全部包含到__OBJC__中,防止非.m文件访问引起错误。
Tip:.c如果import OC的.h文件,可能会引入@开头的关键词,c语言无法识别,就会报错。
InfoPlist.strings和本地化有关(多语言支持)。
程序的入口是main.m。
几个重要对象:
UIApplication是整个应用程序的象征,每个应用都有自己的UIApplication对象,而且是单例的,即唯一的。
要操作按钮图标(如显示右上角的红色),或者提示用户当前正在联网:
第二个属性开启后在顶部的StatusBar会有联网的提示圆圈,第三个属性是设置应用显示在右上角的数字,0表示不显示。
UIApplication *app = [UIApplication sharedApplication];
app.networkActivityIndicatorVisible = YES;
app.applicationIconBadgeNumber = 1;
openURL方法可以用于访问资源,会通过浏览器访问:
[app openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
不用自己决定是以什么方式打开。
如果把URL的协议头换成tel://可以拨打电话。
协议:sms是发短信,mailto是发邮件,还可以打开其他app(例如另一个app进行授权登陆)。
从iOS7开始,系统提供了两种方式管理Status Bar,可以通过控制器管理(不同控制器可以有不同的状态栏)。通过UIApplication来管理状态栏,一个App只能有一种状态栏。
默认情况下,iOS7+都是通过控制器来控制Status Bar,Application对象有一系列的UIStatusBarXxx属性来设定,但是iOS7+内这写内容是无效的。
可以通过修改Xxx-Info.plist修改:
View controller-based status bar appearance 键值设置为NO即可。
Application管理StatusBar的好处:可以使用setStatusBarHidden方法设置动画。
Tip:中途改变状态栏应该使用Application来控制。
(三十三)Xcode项目的重要工程文件的更多相关文章
- xcode项目打不开:incompatible project version问题
低版本xcode打开高版本xcode项目或库工程的时候就会出现,打不开的问题 解决 1可以重建创建工程,将文件拷贝到新工程 2 相对一,较简单 找到.xcodeproj文件 右键 显示包内容,找到pr ...
- 转:xcode项目打不开:incompatible project version问题
这个是xcode版本对应不上,不一定要修改版本,我们修改记录版本的文件里面的版本号就行了. 低版本xcode打开高版本xcode项目或库工程的时候就会出现,打不开的问题 解决 1可以重建创建工程,将文 ...
- Xcode工程文件pbxproj
Xcode工程文件pbxproj Xcode会去读Project.pbxproj文件,把pbxproj转成plist文件,看起根目录结构 rootObject:指向的是我们的工程对象.(对应一个24个 ...
- 【Xcode 4 无法打开 Xcode 5 DP 打开过的工程文件 解决方法】
试用Xcode 5 DP打开现有工程文件后再用Xcode4打开后 Xcode 4 会进入崩溃模式折腾了几次发现下面的方法可以让工程文件恢复 如果在Xcode5-DP中打开过xib文件需要在侧栏中修改I ...
- SVN版本更新后,upData工程之后,Xcode 工程文件打不开解决办法
svn更新代码后,打开xcode工程文件,会出现 xxx..xcodeproj cannot be opened becausethe project file cannot be parsed. ...
- Xcode 工程文件打开不出来, cannot be opened because the project file cannot be parsed.
svn更新代码后,打开xcode工程文件,会出现 xxx..xcodeproj cannot be opened because the project file cannot be parsed ...
- NeHe OpenGL教程 第三十三课:TGA文件
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 关于ios项目沙盒中的文件和Xcode项目创建的文件
//1.1获取在Xcode项目打开的情况下创建的Plist文件 NSString *path = [[NSBundle mainBundle]pathForResource:@"Profes ...
- JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录
JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Soc ...
随机推荐
- Nginx之(四)工作原理
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的 4.1 进程模型 Nginx在启动后,会有一个master进程和多个worker进程.master进程主要用来管理worker进程, ...
- linux和android开发链接
1.Tracy Mcgrady的专栏冰山一角:linux和Android底层开发,主要是mtk系列点击打开链接 2.郁闷Wednesday:嵌入式linux 单片机 android,点击打开链接 3. ...
- How To Handle MLOG$_AP_SUPPLIER_SITES_AL, MLOG$_AP_SUPPLIERS Growing So Much? Having Lots of Data
How To Handle MLOG$_AP_SUPPLIER_SITES_AL, MLOG$_AP_SUPPLIERS Growing So Much? Having Lots of Data (文 ...
- WmS简介(三)之Activity窗口是如何创建的?基于Android7.0源码
OK,在前面两篇博客中我们分别介绍了WmS中的token,同时也向小伙伴们区分了Window和窗口的区别,并且按照type值的不同将Android系统中的窗口分为了三大类,那么本篇博客我们就来看看应用 ...
- FORM开发两种方式实现动态LIST
方法一:常规的,也是网上比较常见的 1.将目标ITEM的子类信息设置为List,不需要添加列表中元素,不需要初始值. 2.新建一个Procedure,代码如下: PROCEDURE basis_lis ...
- activiti源码编译
个小时,大家安装的时候一定要耐心. 最终编译之后的效果部分如下图所示: 因为我这里有些xml文件没有去除验证,所以有红色的警告,不过也不影响使用. 下面看一下下载之后文件的变化如下图所示: 我们导入主 ...
- [error]error while loading shared libraries: libpcre.so.1 解决
nginx 安装好之后,启动的时候报错 [root@localhost nginx-1.6.2]# /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin ...
- Android-满屏幕拖动的控件
本文转载自师兄一篇博客:http://blog.csdn.net/yayun0516/article/details/52254818 觉得跟之前的模拟小火箭很相似,又有学习的地方,能作为知识补充.所 ...
- ORACLE数据库学习之备份与恢复
oracle数据库的备份与恢复 第一部分:数据库的备份 备份的必要性 因为各种人为或外界的因素可能会造成数据库中灾难性的数据丢失,为了保证数据库中数据的安全,必须采取备份措施保证RDBMS中包含 ...
- 13常用sql语句
创建语句 CREATE table if not exists b(id INTEGER PRIMARY KEY AUTOINCREMENT,waijian int ,FOREIGN KEY (wai ...