iOS -程序启动原理和UIApplication的介绍
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
//点击屏幕会调用该方法
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
UIApplication *app = [UIApplication sharedApplication];
//注册通知
UIUserNotificationSettings *nitice = [UIUserNotificationSettings
settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[app registerUserNotificationSettings:nitice];
//IconBadgeNumber
app.applicationIconBadgeNumber = 20;
}
@end
运行效果:
#pragma mark - 状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
#pragma mark - 是否隐藏状态栏(no)
- (BOOL)prefersStatusBarHidden {
return NO;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
//获取
UIApplication *app = [UIApplication sharedApplication];
//注册通知
UIUserNotificationSettings *nitice =
[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];
[app registerUserNotificationSettings:nitice];
//IconBadgeNumber
app.applicationIconBadgeNumber = 20;
app.networkActivityIndicatorVisible = YES;
//设置状态栏
app.statusBarHidden = NO;
app.statusBarStyle = UIStatusBarStyleDefault;
}
打开其他app程序 openURL方法,可以打开其他APP。
AppDelegate的主要作用就是处理(监听)应用程序本身的各种事件。
,而且实现了部分代理方法,从而监控我们的应用程序。
delegate;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 当应用程序启动完毕的时候就会调用(系统自动调用)
NSLog(@"%s",__func__);
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// 即将失去活动状态的时候调用
NSLog(@"%s",__func__);
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 应用程序进入后台的时候调用
NSLog(@"%s",__func__);
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
/ / 应用程序即将进入前台的时候调用
NSLog(@"%s",__func__);
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// 重新激活(能够和用户交互)
NSLog(@"%s",__func__);
}
- (void)applicationWillTerminate:(UIApplication *)application {
// 应用程序即将被销毁的时候会调用该方法
NSLog(@"%s",__func__);
}
应用程序一般有五个状态:官方文档app.states
#include<stdio.h>
int main(int argc,char* argv[])
{
printf("hello, world\n");
return 0;
}
#include <QtGui>
int main(int argc,char *argv[]) {
QApplication app(argc,argv);
QLabel label(QString("hellow qt"));
label.show();
app.exec();
}
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
principalClassName,
NSString
*
__nullable
delegateClassName);
- argc:argc是命令行总的参数个数
- argv:argv[]是argh个参数,记录用户输入的参数;
- principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类),如果为nil,则用UIApplication类作为默认值
- delegateClassName:指定应用程序的代理类,UIApplicationDelegate协议中定义的方法,在该类中实现;
即:return UIApplicationMain(argc,
argv, @"UIApplication",@"AppDelegate");
#import "AppDelegate.h"
#import "ViewController.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
ViewController *vc = [[ViewController alloc] init];
self.window.rootViewController = vc;
vc.view.backgroundColor = [UIColor redColor];
[self.window makeKeyAndVisible];
return YES;
}
iOS -程序启动原理和UIApplication的介绍的更多相关文章
- iOS开发UI篇—程序启动原理和UIApplication
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- 程序启动原理和UIApplication
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- 【转】iOS开发UI篇—程序启动原理和UIApplication
原文 http://www.cnblogs.com/wendingding/p/3766347.html 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程 ...
- [转载自 文顶顶]iOS开发UI篇—程序启动原理和UIApplication
一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplica ...
- 1、程序启动原理和UIApplication【转】
一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplica ...
- iOS开发UI篇—程序启动原理和UIApplication1
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- iOS-程序启动原理和UIApplication
iOS开发UI篇—程序启动原理和UIApplication 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...
- iOS-程序启动原理和UIApplication(转载)
一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplica ...
- IOS程序启动原理
1.Info.plist 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 常见属性(红色 ...
随机推荐
- python unittest TestCase间共享数据(全局变量的使用)
文章目录 1.setupclass里设置self.xxx变量,不同用例之间无法实时共享参数变动 2.setupclass里设置globals().["xxx"]变量,不同用例之间可 ...
- Rasa init报错:AttributeError: type object 'Callable' has no attribute '_abc_registry'
错误:Rasa init --no-prompt 报错 原因:Python升级到3.7后会遇到该问题 解决:pip uninstall typing
- 正则+re模块知识总结
目录 正则表达式 定义+特点 元字符 量词 贪婪匹配与非贪婪匹配 转义符 re模块 re.findall re.search re.match re.compile re.finditer re.sp ...
- Redis-主从
主从复制过程 1.从服务器开始连接主服务器时,会向主服务器发送一个SYNC同步命令 2.主服务器接收到命令后,执行BGSAVE,异步的将写命令保存到一个缓冲区里 3.主服务器执行完BGSAVE之后,就 ...
- canvas遇到的一些问题
1.移动端无法全屏问题 问题描述:由于canvas的width和height只能设置px值,不支持rem单位,所以想在移动设备屏幕分辨率繁杂的情况下达到canvas铺满全屏的效果很困难. 解决方法:通 ...
- poj2823单调队列认知
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 62930 Accepted: 17963 ...
- hibernate 异常分析:java.lang.NoClassDefFoundError: org/hibernate/Session
原因: NoClassDefFoundError的含义就是说编译器找不到org/hibernate/Session这个类的定义 解决方法: 1.检查java中是否导入hibernate 包 impor ...
- Visual Studio 2019 Professional 激活
Visual Studio 2019 Professional下载地址>https://visualstudio.microsoft.com/zh-hant/thank-you-download ...
- JPA EntityManager 在没有实体类的情况下返回Map
JPA entityManager.createNativeQuery()执行原生的SQL,当我们查询结果没有对应的实体类时,query.getResultList()返回的是一个List<Ob ...
- 如何快速全面掌握Kafka?这篇文章总结了
Kafka 是目前主流的分布式消息引擎及流处理平台,经常用做企业的消息总线.实时数据管道,本文挑选了 Kafka 的几个核心话题,帮助大家快速掌握 Kafka,包括: Kafka 体系架构 Kafka ...