2015/10/6 iOS 笔记 细节 应用中常见文件

1,工程名-info.plist文件

bundle display name 应用显示的名称(10到12个字符,超过显示...)

bundle identifier  应用的唯一标识 com.xx.hhxx

bundle version 软件版本号

supported interface orientation 屏幕旋转 默认支持三种模式

2,应用中常见文件 工程名-Prefix.pch (新版没有这个文件了)

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

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

在pch文件中添加下列预处理指令,然后在项目中使用log(...)来输出日志信息,

就可以在发布应用的时候,一次性将NSLog语句移除(在调试模式下,才有定义DEBUG)

#ifdef __OBJC__

#import <UIKit/UIKit.h>

#import <Foundation/Foundation.h>

#define age  28

#define serverTel @"13531234234"

#import "HMPerson.h"

//调试模式

#ifdef DEBUG

#define HMLog(...) NSLog(__VA_ARGS__)

#else

//发布模式(release)

#define HMLog(...)

#endif

---------------------------------------------------------------------------------------------------------------

UIApplication对象是应用程序的象征

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

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

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

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

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

@property(nonatomic) NSInteger applicationIconBadgeNumber;

设置联网指示器的可见性

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

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

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

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

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

状态栏的样式

- (UIStatusBarStyle)preferredStatusBarStyle;

状态栏的可见性

- (BOOL)prefersStatusBarHidden;

如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置

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://[email protected]"]];

打开一个网页资源

[app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]];

打开其他app程序

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

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

delegate可处理的事件包括:

应用程序的生命周期事件(如程序启动和关闭)

系统事件(如来电)

内存警告

… …

main函数中执行了一个UIApplicationMain这个函数

int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);

argc、argv:直接传递给UIApplicationMain进行相关处理即可

principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值

delegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议

UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性

接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)

程序正常退出时UIApplicationMain函数才返回

时间: 2024-11-25 15:49:24

2015/10/6 iOS 笔记 细节 应用中常见文件的相关文章

2015/10/3 iOS 笔记 细节 iOS9中UIAlertController的简单使用 ScrollView NSTimer

一.iOS9中UIAlertController的简单使用 很明显,简单的UIAlertView已经不能用了,我感觉很伤心. // 创建 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"开始了" message:@"开始了!" preferredStyle:UIAlertControllerStyleActionSheet]; // UIAlertControllerS

2015/10/4 iOS 笔记 细节 简单-代理过程 UITableView

一.简单-代理过程 1,创建代理 @class TgFootView; @protocol TgFootViewDelegate <NSObject> @optional   可选是否实现 视图的下载按钮被点击 - (void)tgFootViewDidDownloadButtonClick:(TgFootView *)footView; @end @interface TgFootView : UIView 代理如果使用强引用,就会产生循环引用,造成控制器和子视图都无法被释放,造成内存泄露.

2015/10/2 iOS笔记 细节

一.按钮不能交互的几种情况 1,alpha <= 0.01 (0.02就能点了) 2,hidden = YES 3, userInteraction = NO 4, 所在的父视图不允许交互,按钮也不能交互 5,在父视图可见范围内可以交互,超出范围的部分不能交互. 二.UIImageView 默认 不允许用户交互的. 三.乱序 - (void)randomOptions { // 对option数组乱序 [self.options sortedArrayUsingComparator:^NSCom

[iOS基础控件 - 6.10.4] 项目启动原理 项目中的文件

A.项目中的常见文件 1.单元测试Test 2.Frameworks(xCode6 创建的SingleView Project没有) 依赖框架 3.Products 打包好的文件 4. projectname-Info.plist 全局配置文件 所以最好其他的plist文件不要带有Info字眼 (1)更改项目名 a.修改Bundle display name b.clean c.模拟器删除app,重新生成 (2)Bundle Identifier App唯一标识符 (3)stroyboard入口

[小白学iOS编程05]应用中常见的文件

注:[小白学iOS编程]是本小白根据某视频学习iOS编程过程的笔记记录,内容比较容易,高手勿喷. 转自请注明原博客地址:http://blog.csdn.net/fan_yufan/article/details/45955537 项目中常见的文件 1 Info.plist常见的设置 建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 在旧版本Xcode创建的工程中,这个配置文件

iOS笔记 每天更新中...

1 //1 懒加载创建数组 读取plist文件 2 - (NSArray *)appInfos 3 { 4 if (_appInfos == nil) { 5 //1.1 bundle 6 NSBundle *bundle = [NSBundle mainBundle]; 7 //1.2 获取plist的路径 8 NSString *path = [bundle pathForResource:@"app" ofType:@"plist"]; 9 //1.3 加载p

CTF中常见文件的文件头(十六进制)

jpg/jpeg FF D8 FF E0 00 或 FF D8 FF E1 00 或 FF D8 FF E8 00 png 89 50 4E 47 0D bmp 42 4D 36 5D 3D gif 47 49 46 38 39 zip 50 4B 03 04 14 rar 52 61 72 21 1A mp3 49 44 33 03 00 wav 52 49 46 46 18 原文地址:https://www.cnblogs.com/sch01ar/p/8232084.html

iOS常见文件及程序的启动原理

一. iOS中常见文件 (一). Xcode6之前 创建项目,默认可以看见一个存放框架的文件夹 info文件以工程文件名开头,如:第一个项目-Info.plist 项目中默认有一个PCH文件 (二). Xcode6之后(包括Xcode6) 创建项目,没有框架文件夹,使用时系统才去加载 info文件不以工程文件名开头,如:Info.plist 项目中没有PCH文件 (三). Info.plist文件(项目配置文件) 作用:保存应用的信息,软件名称.版本号等等,相当于身份证 Bundle name:

兼容iOS 10 资料整理笔记-b

原文链接:http://www.jianshu.com/p/0cc7aad638d9 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserNotifications的易用,功能也变得非常强大. iOS 9 以前的通知 1.在调用方法时,有些方法让人很难区分,容易写错方法,这让开发者有时候很苦恼. 2.应用在运行时和非运行时捕获通知的路径还不一致. 3.