iOS准备程序

UIAppliacation类

每个应用程序都只有一个UIApplication类的实例对象

运行起来的应用程序就是一个UIApplication对象

UIApplicationMain

创建UIApplication对象的一个单例对象(singleton)

The role of your app’s application object

.handle the initial routing of incoming user events

处理用户行为的一个循环

.dispatches action messages forwarded to it by control objects (instances of the UIControl class) to appropriate target objects.

将特定的行为分配给特定的目标对象(将不同的事件传递给不同的UI控件)

Tasks

Getting the App Instance:获取单例对象

Getting the App Delegate:获取应用程序代理(捕获程序的状态)

Getting App Windows:获取窗口

Controlling and Handling Events:处理事件

Opening a URL Resource:打开外部的APP 资源(Safari)

Configuring the User Notification Setting:配置用户的通知

Registering for Remote Notifications:远程通知(QQ消息,更新通知)

Registering for Local Notifications:本地通知(闹钟)

Managing Background Execution:管理后台的执行

Managing Home Screen Quick Actions for 3D Touch:快捷方式

Controlling App Appearance:管理程序的外观(状态栏,网络指示,方向)

NSStringFronClass将一个类转化为字符串形式

NSStringFronClass([AppDelegate class])

UIApplicationDelegate  响应程序运行过程中发生的一些重要的事件(程序启动,进入后台,激活,内存吃紧。。)

应用程序代理和app共同运行,确保程序与系统或者其他程序之间的交互

应用程序代理是程序的root对象,整个程序运行过程中都一直存在

App Delegate里面的那些方法应该被实现

The app delegate performs several crucial roles:

  • .It contains your app’s startup code.
  • 可以在代理里面使用代码进行设置

a.程序加载起来调用的第一个方法(配置,注册服务器信息,读取数据,配置界面)

//还没有运行到内存里面

  • - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions NS_AVAILABLE_IOS(6_0);
  • //加载好了,需要对显示的界面进行配置
  • - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions NS_AVAILABLE_IOS(3_0);
  • It responds to key changes in the state of your app. Specifically, it responds to both temporary interruptions and to changes in the execution state of your app, such as when your app transitions from the foreground to the background.
  • 临时打断、状态改变
  • It responds to notifications originating from outside the app, such as remote notifications (also known as push notifications), low-memory warnings, download completion notifications, and more.
  • 外部通知(消息推送、内存不够、后台下载完成)
  • registerForRemoteNotificationTypes:
  • It determines whether state preservation and restoration should occur and assists in the preservation and restoration process as needed.
  • 确定程序的状态(数据)是否应该保存或者恢复
  • It responds to events that target the app itself and are not specific to your app’s views or view controllers.
  • 响应应用程序本身的事件
  • application:openURL:options:
  • You can use it to store your app’s central data objects or any content that does not have an owning view controller.
  • 保存程序当前的核心数据或其他那些没有viewController保存的数据

UIResponder

The UIResponder class defines an interface for objects that respond to and handle events.

定义了对象响应和处理事件的接口

所有能够处理事件的UI控件都是直接或者间接继承于UIResponder

两种主要的事件行为:触摸事件和运动事件

There are two general kinds of events: touch events and motion events.

UIEvent

touchesBegan:withEvent:,

touchesMoved:withEvent:,

touchesEnded:withEvent:,

touchesCancelled:withEvent:.

motionBegan:withEvent:,

motionEnded:withEvent:,

motionCancelled:withEvent:.

iOS3.0 canPerformAction:withSender:

iOS 4.0, UIResponder added the remoteControlReceivedWithEvent: method for handling remote-control events.

Responder Chain响应者链

辑视图有层级关系,后添加的视图会覆盖前面的视图,当一个事件发生了。最前面的视图会接收到这个事件,如果这个视图不响应,那么继续将事件传递给后面一层,直到UIWindow,如果都不响应,那么事件将会被丢弃,这个过程中,只要有一个响应了,那么这个事件就停止传递了。

为什么要使用代理

为了简化代码逻辑(苹果公司自己设计外观和系统,将制造、材料、销售代理出去,就是为了让自己专注核心模块)

继承可以完成代理的功能(如果使用继承,相当于苹果公司自己有自己的制造子公司,材料子公司,销售子公司,对于自己的管理加大了难度,并且无法专注核心竞争力)

整个应用程序只有一个代理(默认系统为我们提供了AppDelegate类)

UIWindow

manages and coordinates the views an app displays on a device screen

管理和协调设备屏幕上面显示的视图

一个应用程序一般情况下只有一个window

UIWindow的功能

.provide an area for displaying its views

提供一片用来显示视图的区域

.distribute events to the views.

分发事件给视图

.一个UIWindow对象必须设置一个主界面

设置窗口的rootViewController属性

.显示窗口

调用makeKeyAndVisible属性

UIScreen

A UIScreen object defines the properties associated with a hardware-based display

定义一些与基于硬件显示的属性

如何获取设备的主屏幕

[UIScreen mainScreen]

如何获取一个视图的矩形坐标

bounds属性

各种设配的尺寸:

4(320 * 480)

5(320 * 568)

6(375 * 667)

6+(414 * 736)

时间: 2024-10-19 18:44:37

iOS准备程序的相关文章

iOS开发者程序许可协议

请仔细阅读下面的许可协议条款和条件之前下载或使用苹果软件.   这些条款和条件构成你和苹果之间的法律协议. 目的 你想使用苹果软件(如下定义)来开发一个或多个应用程序(如下定义)Apple-branded产品运行iOS. 苹果愿意授予您有限的许可使用苹果软件开发和测试您的应用程序在本协议规定的条款和条件. 开发的应用程序在此协议下可以分布在四个方面:(1)通过应用程序商店,如果选择苹果,(2)通过VPP / B2B项目网站,如果选择苹果,(3)在一个有限的基础上使用注册设备(如下定义),和(4)

使用Xcode 7 beta免费真机调试iOS应用程序

http://ju.outofmemory.cn/entry/182050 使用Xcode 7 beta免费真机调试iOS应用程序 K-Res的Blog 2015-06-09 21942 阅读 xcode 今天凌晨的WWDC15虽然没有熬夜守候吧,但也还是早起第一时间翻看了twitter的相关标签,发现比较实惠的一点就是新的Xcode 7可以在不加入每年99刀的Apple Developer Program的情况下真机调试应用了(不知道是不是迫于Android那“粗犷”的真机调试方式的压力,呵呵

Chisel辅助iOS 应用程序调试,MusicApp模仿酷狗4.0 UI框架

本文转载至 http://www.cocoachina.com/ios/20140825/9446.html Chisel Chisel集合了大量的LLDB 命令来辅助iOS 应用程序调试,并支持添加本地和自定义的命令.以下是其中所包含的一些命令,并对其适用于iOS还是OS X进行了区分: M13ProgressSuite 该项目包含了多种不同的风格的进程指示图,比如普通圆环形.分段圆形加载.圆形饼图加载以及条形加载等等,比如其中UINavigationBar的进程动画非常像苹果的Messag

iOS 应用程序生命周期

刚买了关东升老师的ios书,来记录一下自己感觉有用的东西: 作为应用程序的委托对象,Appdeletage在应用程序的生命周期的不同阶段会调用不同的方法. 首先说一下ios应用的五中状态: Not Running (非运行状态)应用程序未运行或者已经终止 Inactive (前台非活动状态)应用程序进入前台状态,但是还不能接受事件处理 Active (前台活动状态)应用程序进入前台,能接受事件 Background (后台状态)应用程序进入后台,依然能够执行代码.如果有可执行代码就会继续执行,如

三种iOS应用程序用户数据存储方法

本文通过偏好设置,plist文件,归档解档三种方法来演示iOS应用程序用户数据存储机制. 首先,我们创建一个Person类,并定义三个成员属性,用来存储数据 @property (nonatomic,copy) NSString *name; @property (nonatomic,assign)NSInteger age; @property (nonatomic,assign)BOOL isTrue; 一.通过偏好设置 1.通过偏好设置存储数据 //获取偏好设置的对象 NSUserDefa

[转载] iOS应用程序的生命周期

iOS应用程序的生命周期 2015-06-23 iOS大全 (点击上方蓝字,快速关注我们) iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有app来运行,而你提供自己编写的代码来定制app的外观和行为.因此,了解iOS infrastructure和它们如何工作对编写app是很有帮助的. Main函数入口 所有基于C编写的app的入口都是main函数,但iOS应用程序有点不同.不同就是你不需要为iO

发布IOS应用程序到苹果APP STORE完整流程

参考:http://blog.csdn.net/mad1989/article/details/8167529(xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)) http://www.ttlsa.com/dev/how-to-publish-iosapp-to-appstore/ (如何发布IOS应用程序到苹果APP STORE) 开发环境:xcode5.1.1 iphonesdk:7.1 开发机器:iMac 真机部署测试:apple个人开发者ID 向导: 必备ID

IOS应用程序生命周期

1.应用程序状态 1.1.Not running-未运行 程序没有启动 1.2.Inactive-未激活 程序在前台运行,不过没有接受到事件,在没有事件处理下程序同城停留在这个状态 1.3.Active-激活 程序在前台运行并且接受到了事件,这也是前台的一个正常的模式 1.4.Background-后台 程序在后台而且能执行代码,大多数程序进入这个状态后会在这个状态停留一会,时间到了之后会进入挂起状态,有的程序经过特殊的请求后可以长期处于Background状态 1.5.Suspended-挂起

[转]iOS应用程序生命周期(前后台切换,应用的各种状态)详解

转载地址:http://blog.csdn.net/totogo2010/article/details/8048652 iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验. //开发app,我们要遵循apple公司的一些指导原则,原则如下: 1.应用程序的状态 状态如下: Not running

减小iOS应用程序的大小

减小iOS应用程序的大小 本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相关技巧(当第一次下载和安装程序时).如果是针对升级程序的话,可以看这篇文章(减小iOS应用程序升级时所需下载的大小)(这与第一次安装使用的工作原理有所不同). 检查应用程序 首先是检查.app bundle,看一下程序包里面哪些文件占的空间最大. 在做任何相关优化之前,我们需要做一些权衡.通过权衡,