Info.plist和pch文件的作用

建立一个project后,会在Supporting files目录下看到一个“project名-Info.plist”的文件,该文件对project做一些执行期的配置。很重要,不能删除

在旧版本号Xcode创建的project中。这个配置文件的名字就叫“Info.plist”

项目中其它Plist文件不能带有“Info”这个字眼,不然会被错觉得是传说中很重要的“Info.plist”

项目中另一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关

Info.plist

//常见属性(红色部分是用文本编辑器打开时看到的key)
Localiztion native development //本地化相关
region(CFBundleDevelopmentRegion) //程序安装后显示的名称,限制在10-12个字符,假设超出,将被显示缩写名称
Bundle display name(CFBundleDisplayName) //app图标名称,一般为Icon.png
Icon file(CFBundleIconFile) //应用程序的版本号号,每次往App Store上公布一个新版本号时,须要添加这个版本号号
Bundle version(CFBundleVersion) //主storyboard文件的名称
Main storyboard file base name(NSMainStoryboardFile) //项目的唯一标识,部署到真机时用到
Bundle identifier(CFBundleIdentifier)

pch文件

项目的Supporting files目录以下有个“project名-Prefix.pch”文件,也是一个头文件

pch头文件的内容能被项目中的其它全部源文件共享和訪问

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

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

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

UIApplication的常见使用

UIApplication对象是应用程序的象征

每个应用都有自己的UIApplication对象。并且是单例的

通过[UIApplication sharedApplication]能够获得这个单例对象

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

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

//设置应用程序图标右上角的红色提醒数字
@property(nonatomic) NSInteger applicationIconBadgeNumber; //设置联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

假设想利用UIApplication来管理状态栏。首先得改动Info.plist的设置

iOS7中的状态栏

从iOS7開始,系统提供了2种管理状态栏的方式

通过UIViewController管理(每个UIViewController都能够拥有自己不同的状态栏)

通过UIApplication管理(一个应用程序的状态栏都由它统一管理)

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

//状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle; //状态栏的可见性
- (BOOL)prefersStatusBarHidden;

openURL:

UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url;

openURL:方法的部

posted @
2017-05-12 09:37 
wzjhoutai 
阅读(...) 
评论(...) 
编辑 
收藏

iOS开发 - App程序启动原理的更多相关文章

  1. iOS app 程序启动原理

    iOS app 程序启动原理 Info.plist: 常见设置     建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...

  2. iOS APP程序启动原理

    UIApplication 程序启动原理 一个应用程序运行就必须要有一个进程,一个进程至少要有一个线程,我们把这个线程叫做主线程,主线程开启之后会开启一个主运行循环,如果不开启一个运行循环,程序开启了 ...

  3. 详解 IOS 7.1 程序启动原理

    程序都是从Main方法入口的 IOS 也不例外 int main(int argc,char * argv[]) { @autoreleasepool { return UIApplicationMa ...

  4. iOS程序启动原理---iOS-Apple苹果官方文档翻译

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...

  5. [转]iOS hybrid App 的实现原理及性能监测

    转自:http://www.cocoachina.com/ios/20151118/14270.html iOS hybrid App 的实现原理及性能监测 2015-11-18 11:39 编辑:  ...

  6. iOS中的应用启动原理

    iOS中的应用启动原理 来源: http://m.blog.csdn.net/article/details?id=50530090 http://m.warting.com/program/2016 ...

  7. iOS开发人员程序许可协议

    请细致阅读以下的许可协议条款和条件之前下载或使用苹果软件.   这些条款和条件构成你和苹果之间的法律协议.   iOS开发人员程序许可协议   目的 你想使用苹果软件(例如以下定义)来开发一个或多个应 ...

  8. iOS开发app启动原理及视图和控制器的函数调用顺序

    main()函数是整个程序的入口,在程序启动之前,系统会调用exec()函数.在Unix中exec和system的不同在于,system是用shell来调用程序,相当于fork+exec+waitpi ...

  9. iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信

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

随机推荐

  1. log4j动态日志级别调整

    1. 针对root logger的设置 log4j.rootLogger=INFO, CONSOLELogger.getRootLogger().setLevel(org.apache.log4j.L ...

  2. Leetcode 334.递增的三元子序列

    递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列. 数学表达式如下: 如果存在这样的 i, j, k,  且满足 0 ≤ i < j < k ≤ n- ...

  3. Charlie's Change(完全背包记录路径)

    Charlie is a driver of Advanced Cargo Movement, Ltd. Charlie drives a lot and so he often buys coffe ...

  4. 【JavaScript 14—学习总结】:从小事做起

    导读:花了将近两个月,JavaScript的学习视频算是做完了.里面的例子,都敲过一遍,但有少数的几个就是实现不了,比如:百度分享侧栏随着滚动条移动:菜单切换只对第一个起作用等,也就先放着了.现在,就 ...

  5. 九度oj 题目1536:树的最小高度

    题目描述: 给定一棵无向树, 我们选择不同的节点作为根节点时,可以得到不同的高度(即树根节点到叶子节点距离的最大值), 现在求这棵树可能的最低高度. 输入: 输入可能包含多个测试案例. 对于每个测试案 ...

  6. OkHttpUtil

    package jp.co.gunmabank.util import android.os.Handlerimport android.os.Looperimport com.google.gson ...

  7. iOS开发工具篇-AppStore统计工具

    苹果官方的iTunes Connect提供的销售数据统计功能比较弱,例如只能保存最近30天的详细销售数据,界面丑陋, 无法查看App的排名历史变化情况等. 早有一些公司提供了专门的解决方案或工具.这些 ...

  8. 刷题总结——子串(NOIP2015提高组)

    题目: 题目背景 NOIP2015 提高组 Day2 T2 题目描述 有两个仅包含小写英文字母的字符串 A 和 B .现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在 ...

  9. Elasticsearch 禁止Body覆盖URL中的参数

    以通过设置参数rest.action.multi.allow_explicit_index为false来关闭覆盖功能. 这个设置会对所有的节点起作用,设置方法如下: 在config/elasticse ...

  10. Codeforces 432D Prefixes and Suffixes kmp

    手动转田神的大作:http://blog.csdn.net/tc_to_top/article/details/38793973 D. Prefixes and Suffixes time limit ...