(三十三)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 ...
随机推荐
- Objective-C中的消息发送总结
关于OC中的消息发送的实现,在去年也看过一次,当时有点不太理解,但是今年再看却很容易理解. 我想这跟知识体系的构建有关,如果你不认识有砖.水泥等这些建筑的基本组成部分,那么我们应该很难理解建筑是怎么建 ...
- 自定义下拉刷新上拉加载View
MainActivity.java package com.heima52.pullrefresh; import java.util.ArrayList; import com.heima52.pu ...
- iOS开源加密相册Agony的实现(三)
简介 虽然目前市面上有一些不错的加密相册App,但不是内置广告,就是对上传的张数有所限制.本文介绍了一个加密相册的制作过程,该加密相册将包括多密码(输入不同的密码即可访问不同的空间,可掩人耳目).Wi ...
- 利用LogParser将IIS日志插入到数据库
利用LogParser将IIS日志插入到数据库 上面的博文是定制一个计划任务来将log日志定时的导入数据库 下面这篇博文是用cmd指令将日志导入到一张sql表中,是一次性操作 Log P ...
- Weblogic 12c 集群部署和session复制
在上一篇Weblogic12c集群搭建的基础上,这一篇介绍Weblogic12c集群应用的部署和session复制. 1.启动服务 首先在weblogic12c控制台,启动受托管服务server1.s ...
- ICL Auto Vectorization
简介 此文简单介绍如何使用intel c++编译器实现向量化加速. 全文如下安排: base : 待优化的源代码. vectorization : 第一个向量化版本. aligned : 内存对其对向 ...
- (一)ROS系统入门 Getting Started with ROS 以Kinetic为主更新 附课件PPT
ROS机器人程序设计(原书第2版)补充资料 教案1 ROS Kinetic系统入门 ROS Kinetic在Ubuntu 16.04.01 安装可参考:http://blog.csdn.net/zha ...
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 在项目启 ...
- iOS日历中给一个事件添加多个提醒
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) iOS自带的日历应用中,我们最多只能给一个事件设置2个提醒,但 ...
- 深入理解CoordinatorLayout.Behavior
要研究的几个问题 一.Behavior是什么?为什么要用Behavior? 二.怎么使用Behavior? 三.从源码角度看为什么要这么使用Behavior? 一.Behavior是什么?为什么要用B ...