《iOS应用开发》——2.1节Objective-C编程语言

2.1 Objective-C编程语言
iOS应用开发
Objective-C语言是一种简洁的、优雅的、对C语言进行了面向对象设计的扩展。严格意义上来说,它是C语言的超集。你可以在Objective-C项目中使用任何有效的C语言代码。这让我们除了Objective-C和C框架库以外,还可以使用大量的第三方代码库。Objective-C的大多数面向对象的语法都是从Smalltalk借鉴而来。Smalltalk是最早的面向对象语言之一,它设计得很简单,很容易被实现并且很容易学会。尽管它的历史很悠久,Smalltalk仍然还是市场上最具创新性的编程语言。很多现代的计算机编程语言仅仅是重新开发了最初在Smalltalk中使用过的技术。Objective-C也从那里吸收了很多设计:一个高度动态、极富表达力的基本组件,它是所有东西建立的基石。

作为一个动态语言,Objective-C运行时才将方法和参数绑定,而不是在编译时。你不需要知道对象的类。你可以向任何类发送任何消息。这样通常就会极大地简化代码,但是,如果你给对象发送了一个它无法理解的消息,程序运行时就会崩溃。

幸运的是,Xcode会提醒你一些没有被声明的消息。此外,你可以将对象声明为静态类型,这样编译器会对代码进行额外的分析并产生警告。Objective-C还是一种具有高度反射能力的语言,它能观察和修改自身。在运行时,我们能够检查任何类,并且能访问它的方法和变量等。我们可以修改类,通过类别(categories)或者扩展(extension)来加入自己的方法,甚至可以在运行时动态的重定义方法。

最后,Objective-C,尤其是Cocoa和Cococa Touch框架,使用了许多设计模式来减少不同部分代码的耦合性。耦合性越低的代码越容易修改和维护。修改程序的一部分不会影响代码其他的任何部分。然而,如果你不熟悉这些设计模式,它们则会让代码变得晦涩难懂。

这些设计模式包括我们在程序中使用的模型-视图-控制器(MVC)框架、用委托代替子类、使用键-值编码(KVC)用于高度动态读取对象的实例变量、键-值观察(KVO)用于监控对这些变量的任何改变,以及为应用程序提供大量通知的一个程序框架。

当掌握了Objective-C语言后,你就会发现你常常能够使用比想象中更少的代码来解决更加复杂的问题,无需像传统的程序语言那样使用那么多的代码,例如使用C++或者Java编程语言。我们能够更加仔细地定制解决方案来适应要解决的问题,而不是生搬硬套。

在设计Cocoa Touch框架和Xcode的开发工具时苹果公司都有很好地应用了Objective-C的灵活性。这些工具使得通用的任务变得易于完成,而不需要很多重复的代码,并且需要时还能在其他情况中使用。

本章后面的内容讲述了Objective-C编程语言。但这些并不代表了全部,关于Objective-C就足以写一整本书。事实上,确实有很多人写了这样的书。你有可能想要看这些书。或者阅读苹果公司的开发文档中的Objective-C编程语言。这份指南提供了你可能需要的全部细节。不同的是,本章是“内容精粹”的版本,它为我们起步提供了足够的知识,并且指出了很多关键特征和常见的错误。

虽然并不需要之前就具有面向对象编程的开发经验,但是我还是假设你们对其他类C语言的编程语言有了一个基本的了解(例如C、C++或者Java)。如果下面的例子让你感到非常困惑,你可能需要在继续之前温习一下C语言技能了。如果你可以正确地给出输出结果1,那么,就让我们继续。

#include <stdio.h>
int main (int argc, const char * argv[]) {
     int total = 0;
     int count = 0;
     for (int y = 0; y < 10; y++) {
          count++;
          total += y;
     }
     printf("Total = %d, Count = %d, Average = %1.1f",
             total,
             count,
             (float)total / (float)count);
     return 0;
}

1正确的答案是“Total = 45,Count = 10,Average = 4.5”。如果你能编译并且运行这个程序那就更好了。

时间: 2024-08-19 23:57:34

《iOS应用开发》——2.1节Objective-C编程语言的相关文章

《iOS应用开发》——2.3节内存管理

2.3 内存管理 iOS应用开发 我不是吓唬你们.在iOS 5.0系统之前,内存管理毫无疑问是iOS开发最困难的部分.简而言之,问题是这样的.无论何时你创建了一个变量,你就要在内存中给它分配一定的空间.对于局部变量来说,我们通常使用栈上的内存,这些内存是自动管理的,当函数返回时,函数中定义的任何局部变量都会从内存中自动删除. 这听起来很棒,但是栈有两个严重的局限.首先,它的空间非常有限,如果用尽了内存,应用程序就会崩溃.其次,这些变量很难共享.请记住,函数使用值传参和返回.这意味着所有传入函数或

《iOS应用开发》——1.2节启程

1.2 启程 iOS应用开发 无论你去问哪个工匠,他都会说:如果要成功,就必须要有适合工作的工具.对于iOS开发来说,你必须有一台运行OS X 10.7或者更高版本系统的苹果电脑和一份Xcode 4.2.如果你想要在iOS真机设备上运行你的程序,那么你还需要准备一个兼容的设备(iPhone.iPod touch或者iPad),并且还需要有相应的开发证书/供给配置文件(developer/ provisioning profiles).我们将在第3章"应用程序体系结构"一节中进一步阐述供

《iOS 8开发指南》——第6章,第6.2节Xcode中的MVC

6.2 Xcode中的MVC iOS 8开发指南 在用Xcode编程并在Interface Builder中安排用户界面(UI)元素后,Cocoa Touch的结构旨在利用MVC(Model-View-Controller,模型-视图-控制器)设计模式.在本节的内容中,将讲解Xcode中MVC模式的基本知识. 6.2.1 原理 MVC模式会将Xcode项目分为如下3个不同的模块. 1.模型 模型是应用程序的数据,比如项目中的数据模型对象类.模型还包括采用的数据库架构,比如Core Data或者直

《iOS 8开发指南(第2版)》——第6章,第6.2节Xcode中的MVC

6.2 Xcode中的MVC iOS 8开发指南(第2版) 在用Xcode编程并在Interface Builder中安排用户界面(UI)元素后,Cocoa Touch的结构旨在利用MVC(Model-View-Controller,模型-视图-控制器)设计模式.在本节的内容中,将讲解Xcode中MVC模式的基本知识. 6.2.1 原理 MVC模式会将Xcode项目分为如下3个不同的模块. 1.模型 模型是应用程序的数据,比如项目中的数据模型对象类.模型还包括采用的数据库架构,如Core Dat

《iOS 8开发指南》——第6章,第6.3节在Xcode中实现MVC

6.3 在Xcode中实现MVC iOS 8开发指南 在本书前面的内容中,已经讲解了Xcode及其集成的Interface Builder编辑器的知识.并且在本书上一章的内容中,曾经将故事板场景中的对象连接到了应用程序中的代码.在本节的内容中,将详细讲解将视图绑定到控制器的知识. 6.3.1 视图 在Xcode中,虽然可以使用编程的方式创建视图,但是在大多数情况下是使用Interface Builder以可视化的方式设计它们.在视图中可以包含众多界面元素,在加载运行阶段程序时,视图可以创建基本的

《iOS应用开发》——1.3节到处看看

1.3 到处看看 iOS应用开发 实用工具程序应用应该能用单个单屏显示所有信息,再使用一个背面视图修改偏好设置.iPhone的天气应用就是一个代表性的例子.主屏幕只简单地显示下周的天气预报(即使你可以在不同的城市页面间切换).背面视图允许你编辑城市列表,还可以在华氏度和摄氏度之间切换. 实用工具应用程序模板创建了这种类型应用的最基本的框架.就模板自身来说,它已经是一个功能完整的应用,可以直接构建和运行.当然,它没有干任何有意思的事情,这正是我们将要加进去的.现在,就让我们看看可以免费获得什么.

《iOS 8开发指南》——第6章,第6.5节实战演练——使用模板Single View Application

6.5 实战演练--使用模板Single View Application iOS 8开发指南 Apple在Xcode中提供了一种很有用的应用程序模板,可以快速地创建一个这样的项目,即包含一个故事板.一个空视图和相关联的视图控制器.模板Single View Application(单视图应用程序)是最简单的模板,在本节的内容中将创建一个应用程序,本程序包含了一个视图和一个视图控制器.本节的实例非常简单,先创建了一个用于获取用户输入的文本框(UITextField)和一个按钮,当用户在文本框中输

《iOS 8开发指南(第2版)》——第6章,第6.5节实战演练——使用模板Single View Application

6.5 实战演练--使用模板Single View Application iOS 8开发指南(第2版) Apple在Xcode中提供了一种很有用的应用程序模板,可以快速地创建一个这样的项目,即包含一个故事板.一个空视图和相关联的视图控制器.模板Single View Application(单视图应用程序)是最简单的模板,在本节的内容中将创建一个应用程序,本程序包含了一个视图和一个视图控制器.本节的实例非常简单,先创建了一个用于获取用户输入的文本框(UITextField)和一个按钮,当用户在

《iOS 8开发指南(第2版)》——第1章,第1.4节使用Xcode开发环境

1.4 使用Xcode开发环境iOS 8开发指南(第2版)经过本章第1.3节中的内容讲解之后,在接下来开始讲解使用Xcode开发环境的基本知识,为读者步入后面Objective-C知识的学习打下坚实的基础. 1.4.1 使用Xcode创建程序的基本步骤使用Xcode创建程序的基本步骤如下. (1)启动Xcode应用程序. (2)如果开发新项目,依次选择File→New Project命令. (3)为应用程序类型选择Command Line Utility.Foundation Tool,然后单击

《iOS应用开发》——1.4节修改模板

1.4 修改模板iOS应用开发好了,言归正传.让我们开始创建一些新的东西.我们将为主视图添加一个标签,用来显示一个简短的文本.再为背面视图添加一个文本框,在文本框中用户可以修改主视图中的文本.那么,让我们开始吧! 1.4.1 修改主视图再次打开MainStoryboard.storyboard文件,并且放大主视图控制器场景.就我来说,背景有一点灰暗,对它做一点修改.选择视图对象,然后切换到Attributes inspector.将Background属性改为Light Gray Color(见