Xcode启动基本知识点介绍

版权声明:本文为博主原创文章,如若转载请注明博客来源以及地址,多谢 https://blog.csdn.net/xiaoluodecai/article/details/48207061

一、Xcode默认生成的文件

默认工程有的Info.plist 和pch文件

Info.plist 文件

建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除

在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”
项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”
项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关

常见设置:

这里写图片描述

常见属性(括号里面是用文本编辑器打开时看到的key)
Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关

Bundle display name(CFBundleDisplayName)-程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称

Icon file(CFBundleIconFile)-app图标名称,一般为Icon.png

Bundle version(CFBundleVersion)-应用程序的版本号,每次往App Store上发布一个新版本时,需要增加这个版本号

Main storyboard file base name(NSMainStoryboardFile)-主storyboard文件的名称

Bundle identifier(CFBundleIdentifier)-项目的唯一标识,部署到真机时用到

pch文件:

项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件

pch头文件的内容能被项目中的其他所有源文件共享和访问

一般在pch文件中定义一些全局的宏

在pch文件中添加下列预处理指令,然后在项目中使用Log(…)来输出日志信息,就可以在发布应用的时候,一次性将NSLog语句移除(在调试模式下,才有定义DEBUG)

#ifdef DEBUG
#define Log(...) NSLog(__VA_ARGS__)
#else
#define Log(...) /* */
#endif

Xcode7以后添加pch文件

默认的新版Xcode是不生成pch文件的,添加方法
(1).新生成一个pch文件;
(2).找到 Project > Build Settings > 搜索 “Prefix Header“
(3).“Apple LLVM 6.0″ 栏目中你将会看到 Prefix Header 关键字.
(4).输入: YourProjectName/YourProject-Prefix.pch 或 $(SRCROOT)/YourProject-Prefix.pch(注:将YourProject换成实际你生成的文件名)

二、Xcode默认启动的对象:

基本介绍:

UIApplication对象是应用程序的象征

每一个应用都有自己的UIApplication对象,而且是单例的

通过[UIApplication sharedApplication]可以获得这个单例对象

一个iOS程序启动后创建的第一个对象就是UIApplication对象

利用UIApplication对象,能进行一些应用级别的操作

常用属性:

设置应用程序图标右上角的红色提醒数字

@property(nonatomic) NSInteger applicationIconBadgeNumber;

这里写图片描述

设置联网指示器的可见性

@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

这里写图片描述

iOS7中的状态栏:

从iOS7开始,系统提供了2种管理状态栏的方式
通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)
通过UIApplication管理(一个应用程序的状态栏都由它统一管理)

在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式
状态栏的样式

- (UIStatusBarStyle)preferredStatusBarStyle; 

状态栏的可见性

- (BOOL)prefersStatusBarHidden; 

UIApplication和delegate

所有的移动操作系统都有个致命的缺点:app很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止

还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件

delegate可处理的事件包括:
应用程序的生命周期事件(如程序启动和关闭)
系统事件(如来电)
内存警告
… …

这里写图片描述

关于UIApplicationDelegate
这里写图片描述

iOS程序启动过程:

这里写图片描述

重要的函数:
这里写图片描述
这里写图片描述

关于UIWindow

这里写图片描述

这里写图片描述

注:本文图片内容参考了黑马的PPT;

猜你喜欢

转载自blog.csdn.net/xiaoluodecai/article/details/48207061