安装

      本课程对于创建运行在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开发)的更多相关文章

  1. 【译】UI设计基础(UI Design Basics)--iOS应用解析(iOS App Anatomy)(三)

    2.1  iOS应用解析(iOS App Anatomy) 几乎所有的iOS应用都会用到UIKit框架中的组件.了解这些基础组件的名称,角色,功能可以帮你在应用界面设计时做出更好的决策. UIKit提 ...

  2. 【译】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 ...

  3. Start Developing iOS Apps (Swift) 开始开发iOS应用(Swift)

    http://www.cnblogs.com/tianjian/category/704953.html 构建基础的用户界面 Build a Basic UI http://www.cnblogs.c ...

  4. 【译】Swift 字符串速查表

    [译]Swift 字符串速查表 2015-12-18 10:32 编辑: suiling 分类:Swift 来源:CocoaChina翻译活动 10 5585 Swift字符串 招聘信息: iOS高级 ...

  5. [译]Vulkan教程(13)图形管道基础之Shader模块

    [译]Vulkan教程(13)图形管道基础之Shader模块 Shader modules Unlike earlier APIs, shader code in Vulkan has to be s ...

  6. Swift - 语言指南,来自github学习

    @SwiftLanguage 更新于 2016-6-6,更新内容详见 Issue 55.往期更新回顾详见<收录周报> 这份指南汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排 ...

  7. 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 ...

  8. MAGIC XPA最新版本Magic xpa 2.4c Release Notes

    New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...

  9. iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  10. iOS 学习资源

    这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...

随机推荐

  1. delphi 自定义内存管理

    1.主要通过GetMemoryManager来hook原来的内存管理. 2.通过SetMemoryManager来设置你自己的新的内存管理,可以用一个内存池来优化和管理程序的内存调用情况. proce ...

  2. FPGA作为从机与STM32进行SPI协议通信---Verilog实现

    一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...

  3. 【Linux】apt-get install 怎么阻止弹出框,使用脚本默认自动安装?

    You can do a couple of things for avoiding this. Setting the DEBIAN_FRONTEND variable to noninteract ...

  4. MongoDB分片集群节点状态stateStr:RECOVERING解决

    1.关闭一直处于RECOVERING状态的mongodb server /opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo  127.0.0.1:220 ...

  5. select()/poll() 的内核实现

    mark 引用:http://janfan.cn/chinese/2015/01/05/select-poll-impl-inside-the-kernel.html 文章 select()/poll ...

  6. (转)如何在maven环境中设置JVM参数

    有时候我们需要设定maven环境下的JVM参数,以便通过maven执行的命令或启动的系统能得到它们需要的参数设定.比如:当我们使用jetty:run启动jetty服务器时,在进行热部署时会经常发生:J ...

  7. (转)IntelliJ IDEA下的使用git

    1.git简介 Git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可 ...

  8. 阅读源代码的重要性:如厨师选食材,耍厨具——在Eclipse中怎样查看Java、Android源代码

    首先,非常多人说,不会看jdk中的源代码就不叫学过Java.显然这是肯定的.打个例如:真正的厨师须要从食材的选取.加工.到最后的烹饪.装盘成型,甚至到最后给用户介绍食用方法等一整套流程走下来.而实际上 ...

  9. 我的Android进阶之旅------&gt;Android关于TextWatcher的初步了解

    首先来看一下TextWatcher的源码 package android.text; /** * When an object of a type is attached to an Editable ...

  10. Nginx + FastCGI 程序(C/C++)搭建高性能web service的demo

    http://blog.csdn.net/chdhust/article/details/42645313 Nginx + FastCGI 程序(C/C++)搭建高性能web service的Demo ...