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项目的重要工程文件的更多相关文章

  1. xcode项目打不开:incompatible project version问题

    低版本xcode打开高版本xcode项目或库工程的时候就会出现,打不开的问题 解决 1可以重建创建工程,将文件拷贝到新工程 2 相对一,较简单 找到.xcodeproj文件 右键 显示包内容,找到pr ...

  2. 转:xcode项目打不开:incompatible project version问题

    这个是xcode版本对应不上,不一定要修改版本,我们修改记录版本的文件里面的版本号就行了. 低版本xcode打开高版本xcode项目或库工程的时候就会出现,打不开的问题 解决 1可以重建创建工程,将文 ...

  3. Xcode工程文件pbxproj

    Xcode工程文件pbxproj Xcode会去读Project.pbxproj文件,把pbxproj转成plist文件,看起根目录结构 rootObject:指向的是我们的工程对象.(对应一个24个 ...

  4. 【Xcode 4 无法打开 Xcode 5 DP 打开过的工程文件 解决方法】

    试用Xcode 5 DP打开现有工程文件后再用Xcode4打开后 Xcode 4 会进入崩溃模式折腾了几次发现下面的方法可以让工程文件恢复 如果在Xcode5-DP中打开过xib文件需要在侧栏中修改I ...

  5. SVN版本更新后,upData工程之后,Xcode 工程文件打不开解决办法

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened becausethe project file cannot be parsed. ...

  6. 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 ...

  7. NeHe OpenGL教程 第三十三课:TGA文件

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. 关于ios项目沙盒中的文件和Xcode项目创建的文件

    //1.1获取在Xcode项目打开的情况下创建的Plist文件 NSString *path = [[NSBundle mainBundle]pathForResource:@"Profes ...

  9. JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录

    JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Soc ...

随机推荐

  1. PHP 完整表单实例

    PHP - 在表单中确保输入值 在用户点击提交按钮后,为确保字段值是否输入正确,我们在HTML的input元素中插添加PHP脚本, 各字段名为: name, email, 和 website. 在评论 ...

  2. 利用百度接口进行人脸识别并保存人脸jpg文件

    利用百度接口进行人脸识别,根据返回的人脸location用opencv切割保存. # coding : UTF-8 from aip import AipFace import cv2 import ...

  3. React Native 4 for Android源码分析 一《JNI智能指针之介绍篇》

    文/ Tamic: http://blog.csdn.net/sk719887916/article/details/53455441 原文:http://blog.csdn.net/eewolf/a ...

  4. 粗糙的es6 -> es5转换正则集

    (r'() => {}','function () {return {}}'), # (r'\{\.\.\.(.+?)\}','Object.assign({}, \\1)') , # (r'( ...

  5. Kafka系列之-自定义Producer

    前面已经讲到了,在Kafka中,Message是由Producer产生的,Producer产生的Message会发送到Topic的指定Partition中.Producer可以有多种形式,也可以由用户 ...

  6. 算法之路(三)----查找斐波纳契数列中第 N 个数

    算法题目 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: * 前2个数是 0 和 1 . * 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, 1 ...

  7. KVO and Swift

    不像Objective-c中的类,Swift类对于KVO并没有原生的支持,不过你可以在类型安全的前提下使用属性观察者轻松的完成相同的目标. 不管如何,从NSObject类派生出的类是支持KVO的,如果 ...

  8. Swift基础之自定义PUSH和POP跳转动画

    之前用OC代码写过PUSH和POP的转场动画,闲来无事,将其转换成Swift语言,希望对大家有帮助,转载请注明.... 如何实现PUSH和POP的转场动画? 首先,创建一个NSObject的类,分别用 ...

  9. Dynamics CRM 通过PowerShell启用AllowDeclarativeWorkflows即自定义XAML WorkFlows

    CRM的工作流即workflow,不了解的人乍听之下以为是审批流,其实不是的,CRM本身是不带审批功能的,要实现审批必须要第三方的工作流引擎的配合,当然你也可以自己开发. 工作流刚开始出现的时候只有异 ...

  10. Android必知必会-Android Studio修改包名

    如果移动端访问不佳,请尝试–> Github版 背景 公司做相似产品较多,一般都是以某个产品为基础修改,逐步替换设计图的切图.这个就会导致需要经常为Copy的项目修改包名. 这里是参考一些网上的 ...