iOS

一些基本概念

2019-06-18  本文已影响0人  习惯了_就好

Info.plist 文件

项目的配置文件,项目中其他Plist文件不能带有“Info”这个字眼。
常见属性
Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关

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

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

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

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

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

pch文件

pch头文件的内容能被项目中的其他所有源文件共享和访问
一般在pch文件中定义一些全局的宏

UIApplication

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

获取对象:UIApplication *app = [UIApplication sharedApplication];

设置应用程序图标右上角的红色提醒数字
@property(nonatomic) NSInteger applicationIconBadgeNumber;

设置状态栏左上角联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

设置状态栏
从iOS7开始,系统提供了2种管理状态栏的方式
通过UIApplication管理(一个应用程序的状态栏都由它统一管理)
通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏)
// [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
// app.statusBarHidden = YES;
// app.statusBarStyle = UIStatusBarStyleLightContent;
[app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

设置图标右上角的数字,0代表清除数字
// app.applicationIconBadgeNumber = 0;

第三方应用打开网页,邮件,电话等
// [app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]];
// [app openURL:[NSURL URLWithString:@"tel://10086"]];
// [app openURL:[NSURL URLWithString:@"sms://10086"]];
// [app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];

AppDelegate类,UIApplication的代理

/**
 *  app启动完毕后就会调用
 */
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{return YES;}
//    程序将要失去Active状态进入后台时调用,比如按下Home键或有电话信息进来
- (void)applicationWillResignActive:(UIApplication *)application{}
/**
 *  app进入后台的时候调用
 *  一般在这里保存应用的数据(游戏数据,比如暂停游戏)
 */
- (void)applicationDidEnterBackground:(UIApplication *)application{}
/**
 *  app将要进入前台的时候调用
 启动第一次程序并没有调用WillEnterForeground这个方法。
 */
- (void)applicationWillEnterForeground:(UIApplication *)application{}
//已经变成前台时调用
- (void)applicationDidBecomeActive:(UIApplication *)application{}

/**
  清除不需要再使用的内存
 */
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{}
//当一个程序将要正常终止时会调用,但是如果长主按钮强制退出,则不会调用该方法
- (void)applicationWillTerminate:(UIApplication *)application{}

UIWindow

UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow

iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了

程序启动的完整过程
1.main函数

2.UIApplicationMain

3.分两种情况
没有使用storyboard的情况:
delegate对象开始处理(监听)系统事件

使用storyboard的情况:
根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard

上一篇 下一篇

猜你喜欢

热点阅读