(译)Getting Started——1.1.1 Start Developing IOS Today(开始IOS开发)
安装
本课程对于创建运行在iPad、iPhone和iPod触摸屏上的应用来说,是一个完美的起点。该向导的四个板块可以作为构建你第一个应用的简单向导——内容包括了你需要使用的工具,主要的理念和最佳的实践。
前三个板块组成了一个教程,在这个教程中,你需要实现你所学到的知识。在最后一个教程的末尾,你将会创建一个显示待办列表的简单应用。
在你创建完成第一个应用之后,在你进入下一次努力之前,请阅读第4板块。该板块研究了你或许想要采用的技能和框架。
即使本系列教程会带你走过构建一个简单应用的每一步,但是一般来说,了解计算机编程的人员,特别是熟悉面向对象编程技术的人员从本指南受益最大。
获取工具
在你开始开发应用之前,先安装用于工作的开发环境:
在开发IOS应用之前,你需要准备:
1. 安装有OS X 10.9.4或之后版本系统的Mac电脑一部
2. Xcode(最新的版本)
3. IOS的SDK
Xcode是苹果推出的集成开发环境(IDE)。Xcode包含了资源编辑器,用户界面可视化编辑器和其它众多的元素。Xcode里继承的IOS SDK包含了工具集、编辑器和IOS开发所需的框架。
在Mac电脑上,从App Store里免费下载最新版本的Xcode,下载的Xcode里就包含了IOS的SDK。
Objective-C概念的简介
在这个教程中,你将使用Objective-C编辑语言。Objective-C语言是构建于C语言之上的一门编辑语言,它提供了面向对象的能力和动态的运行时。在Objective-C语言中,你会看到一些熟悉的元素,例如简单类型(int,float等等),结构体,函数,指针,流程控制结构(while,if...else等等)。你还会看到标准的C常规库,例如申明在stdlib.h和stdio.h文件里的东东。
对象是构建应用的模块
在构建一个IOS应用时,你会把大部分时间花费在对象上。
对象包装了与对象行为相关的数据。一个应用是相互联系的对象所组成的大型生态系统,这些对象通过与彼此之间的通信来完成特定的任务,例如显示可视化的界面,响应用户输入,存储信息等。应用和界面元素是由不同类型的对象所构建的,例如按钮,文本域,字符串,数组等。
类是对象的蓝图
对于任何类型的对象来说,类用来描述对象的行为和属性。
以同样的蓝图、以同样的方式构建的多个对象在结构上是同一的,对象的所有实例都共享着同样的属性和行为。你可以创建自己的类,也可以使用框架已经为你定义好的类。
通过创建某个类实例的方式来创建对象时,你需要为类的实例分配空间,并给它赋予合适的初始值。在创建对象时,你需要为对象分配足够的内存空间,并把对象所有的实例都初始化为0。初始化操作就是把对象的初始状态——也就是说,设置对象的实例变量和属性——设置为合理的值,最后把对象返回。初始化的意图是返回一个可用的对象。你既需要分配对象,也需要把对象初始化为可用。
Objective-C编程的一个基本理念就是类继承,即一个类继承父类的行为。如果一个类继承了一个父类,那么该类(即子类)就继承了定义在父类中的所有行为和属性。子类中可以定义自己额外的属性和行为,还可以重写父类的行为。因此,你可以只继承某个类的行为而不用重写该类已经存在的行为。
对象之间通过消息进行通信
在运行时,对象通过给其它对象发送消息来完成彼此之间的通信。在Objective-C体系中,对象通过调用其它对象的方法来实现对象之间的通信。
在Objective-C中,尽管多种方法都可以完成对象之间消息发送,但是最常用的方法是方括号语法。例如,如果你需要给XYZPerson对象的实例somePerson发送sayHello消息,那你可以这样做:
[somePerson sayHello];
左边的引用——somePerson——是消息的接收者,右边的消息——sayHello——是接收者里被调用方法的名称。换名话说,上面的代码被执行时,somePerson将会被发送sayHello消息。
Protocol定义了消息的契约
Protocol定义了在特定情况下对象的预期行为。protocol的形式是编程接口,任何类都可以实现协议。在使用protocol的前提下,两个继承不同父类的子类可以相互通信来完成某个目标,例如解析XML或复制对象等。
任何可以对外提供有用行为的类都可以申明接口来匿名的提供服务。任何类都可以选择性的适配protocol,实现protocol中的一个或多个方法,这样就可以使用类中的行为了。
(译)Getting Started——1.1.1 Start Developing IOS Today(开始IOS开发)的更多相关文章
- 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)
2.1 iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...
- 【译】Objectively Speaking 2: A Crash Course in Objective-C for iOS 6
In this Objective-C tutorial, you will create a simple movie quotes quiz app. Along the way, you’ll ...
- Start Developing iOS Apps (Swift) 开始开发iOS应用(Swift)
http://www.cnblogs.com/tianjian/category/704953.html 构建基础的用户界面 Build a Basic UI http://www.cnblogs.c ...
- 【译】Swift 字符串速查表
[译]Swift 字符串速查表 2015-12-18 10:32 编辑: suiling 分类:Swift 来源:CocoaChina翻译活动 10 5585 Swift字符串 招聘信息: iOS高级 ...
- [译]Vulkan教程(13)图形管道基础之Shader模块
[译]Vulkan教程(13)图形管道基础之Shader模块 Shader modules Unlike earlier APIs, shader code in Vulkan has to be s ...
- Swift - 语言指南,来自github学习
@SwiftLanguage 更新于 2016-6-6,更新内容详见 Issue 55.往期更新回顾详见<收录周报> 这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排 ...
- cocos2dx-lua_修改源码流程(cocos2dx-3.10、win7、Cocos Code IDE1.2)
以下是在cocos2dx-3.10.win7.Cocos Code IDE1.2下假定你已经配置好了cocos2dx的环境.1.修改源代码步骤(1)在Cocos/Cocos2d-x/cocos2d-x ...
- MAGIC XPA最新版本Magic xpa 2.4c Release Notes
New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...
- iOS 资源大全
这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...
- iOS 学习资源
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...
随机推荐
- cmake处理多源文件目录的方法
cmake处理源代码分布在不同目录中的情况也很简单,现在假设我们的源代码分布情况如下: 源代码的分布情况 其中src目录下的文件要编译成一个链接库 第一步,项目主目录中的CMakelist.txt 在 ...
- JS排序:localeCompare() 方法实现中文排序、sort方法实现数字英文混合排序
定义:用本地特定的顺序来比较两个字符串. 语法:stringObject.localeCompare(target) 参数:target——要以本地特定的顺序与 stringObject 进行比较的字 ...
- http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
- 过滤器chain.doFilter(request,response)的含义
过滤器的生命周期一般都要经过下面三个阶段: 初始化: 当容器第一次加载该过滤器时,init() 方法将被调用.该类在这个方法中包含了一个指向 Filter Config 对象的引用.我们的过滤器实际上 ...
- mysql中数据导出成excel文件语句
代码如下 复制代码 mysql>select * from xi_table into outfile ’d:test.xls’; 导出为txt文件: 代码如下 复制代码 select * f ...
- C# 获取父控件容器的属性
C# 获取父控件容器的属性 BindingNavigator bindingNavigator = (sender as ToolStripButton).GetCurrentParent() as ...
- Android jni GetFieldID 和 GetMethodID 函数的说明
Android jni GetFieldID 和 GetMethodID 函数的说明 GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类 ...
- javaweb开发所需的技术需求
本文仅为新手想学习javaWeb的提供一些参考,有不足或错误之处可以修改或添加,另希望以后学习者可以同样将自己的心得发来和大家分享...谢谢 1 前台:html,css,javascript 这是最 ...
- 【VBA编程】07.循环结构语句
[FOR...NEXT语句] For counter = start To End [Step step] [statements] [Exit For] [statements] Next [cou ...
- hibernate 关系映射之 主键关联一对一
单向双向在数据库中没有区别,但是在java程序中有区别. 在程序中:双向的通过一个就可以找到另一个,单向的通过设置了对应关系的类可以找到它所对应的类,反过来就不行. 注解方式单向主键关联: 和 ...