iOS-马上着手开发iOS应用应用程序-第一部分介绍
教程:基础
main 中的 main.m 函数会调用自动释放池 (autorelease pool) 中的 UIApplicationMain 函数。
@autoreleasepool {
return UIApplicationMain(argc, argv, nil,NSStringFromClass([XYZAppDelegate class]));
}
@autoreleasepool 语句支持应用程序的内存管理。自动引用计数 (Automatic Reference Counting, ARC) 利用编译器追踪对象的所有者,使内存管理变得简单;@autoreleasepool 是内存管理基础结构的一部分。
调用 UIApplicationMain 函数 会创建应用程序的两个重要初始组件:
1. UIApplication 类的实例,称为应用程序对象。
应用程序对象可管理应用程序事件循环,并协调其他高级的应用程序行为。定义在 UIKit 框架 中的这个类,不要求您编写任何额外的代码,就可以达成其任务。
2.XYZAppDelegate 类的实例,称为应用程序委托。
Xcode 创建此类,作为设置 Empty Application 模板的一部分。应用程序委托会创建一个呈 现应用程序内容的窗口,并为响应应用程序内的状态转换提供位置。这个窗口是您编写自定应 用程序级代码的地方。与所有的类一样,XYZAppDelegate 类在应用程序的两个源代码文件 中被定义:接口文件 XYZAppDelegate.h;实现文件 XYZAppDelegate.m。
应用程序对象和应用程序委托互动的方式:
应用程序启动时,应用程序对象会调用应用程序委托上已定义的方法,使自定代码有机会执行 其操作,这正是运行应用程序的有趣之处。为了深入理解应用程序委托的角色,请从接口文件 开始查看其源代码。
如果要查看应用程序委托的接口文件,请在项目导航器中选择 XYZAppDelegate.h。应用程序委托的界面包含了单一属性:window。有了这个属性,应用 程序委托才会跟踪能呈现所有应用程序内容的窗口。

XYZAppDelegate.m。应用程序委托的实现包含了一些重要方法的“骨架”。这些预定义的方法可让应用程序对象与应用程序委托进行沟通。在一个重要的运行时事件(例如,应用程序启动、低内存警告和应用程序终止)中,应用程序对象会调用应用程序委托中相应的方法,使其有机会进行适当的响应。您无需执行任何特殊的操作,来确定这些方法是否会在正确的时间被调用,因为应用程序对象会帮您处理这部分的工作。
这些自动实现的方法都具有一个默认的行为。就算将骨架实现留空,或将它从 XYZAppDelegate.m 文件中删除,这些行为在方法被调用时,都会默认执行。您可以使用这些骨架来放置附加的自定代码,以在方法被调用时执行。例如,XYZAppDelegate.m 文件中的第一个方法包含了几行代码,用于设置应用程序的窗口,并让应用程序首次运行时显示白色的背景颜色。在本教程中,您不会使用到任何自定应用程序委托代码,因此可以移除这段代码。
iOS-马上着手开发iOS应用应用程序-第一部分介绍的更多相关文章
- 马上着手开发ios应用程序
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOSCh/chapters/Introd ...
- 马上着手开发 iOS 应用程序
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOSCh/chapters/Introd ...
- 马上着手开发Mac应用程序
你是否想要开发 Mac 应用程序却又不知道从哪里入手?本路线图提供了 Mac 应用程序开发的绝佳起点,即使你已经是一个 iOS 开发专家,本路线图对你依然适用.Apple让开发应用程序和提交应用程序到 ...
- iOS-马上着手开发iOS应用应用程序-第二部分构建应用程序
第二部分构建应用程序 1,应用程序开发过程 2,设计用户界面 3,定义交互 4,教程:串联图 1,应用程序开发过程 定义概念 设计用户界面 定义交互 实现行为整合数据 对象是应用程序的基石 类是对象的 ...
- 微信小程序开发01 --- 微信小程序项目结构介绍
一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...
- 开发iOS应用程序需要的工具和编程技术
似乎每个iOS应用开发学习者都是从这篇文章开始写博客的,我也不例外,也从这里写吧,内容雷同,但绝对是原创.因为一直相信,通过自己的理解写出来,是掌握技术一个很好的途径. Xcode苹果最为优秀的集成开 ...
- 在Visual Studio中使用MonoTouch开发iOS应用程序
前段时间在工作机上装了Mac OS X,这主要是因为我最近需要开发iPhone应用程序.虽然Xcode,Objective C一定是开发iOS应用程序的主流,但是经过一番考虑,我还是决定尝试一下使用M ...
- IOS开发中如何判断程序第一次启动(根据判断结果决定是否显示新手操作引导)
IOS开发中如何判断程序第一次启动 在软件下载安装完成后,第一次启动往往需要显示一个新手操作引导,来告诉用户怎么操作这个app,这就需要在程序一开始运行就判断程序是否第一次启动,如果是,则显示新手操作 ...
- iOS 9应用开发教程之定制应用程序图标以及真机测试
iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以 ...
随机推荐
- js-d3画图插件
d3.js下载 官方网站:http://d3js.org/ github:https://github. com/mbostock/d3/tags forks最新:https://github.com ...
- Android GUI系统
图解Android - Android GUI 系统 (1) - 概论 图解Android - Android GUI 系统 (2) - 窗口管理系统 图解Android - Android GUI ...
- 控件(文本类): TextBlock
1.TextBlock 的示例 1Controls/TextControl/TextBlockDemo1.xaml <Page x:Class="Windows10.Controls. ...
- HashMap和TreeMap的区别
HashMap:数组方式存储key/value,线程非安全,允许null作为key和value,key不可以 重复,value允许重复,不保证元素迭代顺序是按照插入时的顺序,key的hash值是先计算 ...
- IOS-App installation failed原因及解决方法
在用真机调试的时候,每次运行app都会弹出这个框,点击ok后,再次运行就没问题了.刚开始觉得没什么,无非就是多点几次,到后来,觉得这也很浪费时间,严重影响开发效率,在网上搜索了一遍后,决定将解决方案写 ...
- Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError
Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar ...
- pip卡住不动的解决方案
用的是anaconda2,也就是python在windows下的最好的一键安装包,有numpy scipy matplotlib等常用包预装好了 最近搞caffe的python接口,需要装protob ...
- sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
原来在logs下 该权限,还是不行,以root登陆可以了,但是其他节点是普通用户啊,还会出其他问题,仔细看是/tmp,就是linux根目录下的tmp,改他的权限吧,不知道重启会不会变化.
- windows核心编程读后感(待续)
自从大一读那本超厚的C程序设计以后,从来没有像这样慢慢地读一本书了.windows核心这本书足足看了2个多星期.一张张慢慢看,做笔记.感觉学到了很多基础的知识,关于内核方面的没有啥可以做实验的,都在看 ...
- POJ 1365 Prime Land(数论)
题目链接: 传送门 Prime Land Time Limit: 1000MS Memory Limit: 10000K Description Everybody in the Prime ...