iOS程序启动原理知识琐碎

标签(空格分隔): Info.plist plist文件


##Info.Plist配置文件

  1. 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”或者"Info.plist"的文件,该文件对工程做一些运行期的配置,非常重要,不能删除。
  2. 项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”
  3. 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关

###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
复制代码

##UIApplication

UIApplication对象是应用程序的象征每一个应用都有自己的UIApplication对象,而且是单例的 通过[UIApplication sharedApplication]可以获得这个单例对象 一个iOS程序启动后创建的第一个对象就是UIApplication对象 利用UIApplication对象,能进行一些应用级别的操作

###UIApplication常用属性

//设置应用程序右上角的红点数字
    @property(nonatomic) NSInteger applicationIconBadgeNumber;
//设置联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
复制代码

##OpenURL方法

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

//openURL:方法的部分功能有
 - 打电话
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString:@"tel://10086"]];

 - 发短信
[app openURL:[NSURL URLWithString:@"sms://10086"]];

 - 发邮件
[app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];

 - 打开一个网页资源
[app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]];
复制代码

##UIApplication和delegate

所有的移动操作系统都有个致命的缺点:app很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止 还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件 delegate可处理的事件包括: 应用程序的生命周期事件(如程序启动和关闭) 系统事件(如来电) 内存警告 … …

##UIWindow的获取

  • 获取本应用程序中打开的UIWindow列表,这样就可以得到应用中的任何一个UIView对象.(平时输入文字弹出的键盘,就处在一个新的UIWindow中)
[UIApplication sharedApplication].windows
复制代码
  • 用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow。如果某个UIWindow内部的文本框不能输入文字,可能是因为这个UIWindow不是keyWindow
[UIApplication sharedApplication].keyWindow
复制代码
  • 获得某个UIView所在的UIWindow
view.window
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值