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

简介:

本节书摘来自异步社区《iOS应用开发》一书中的第2章,第2.1节Objective-C编程语言,作者【美】Richard Warren,更多章节内容可以访问云栖社区“异步社区”公众号查看

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”。如果你能编译并且运行这个程序那就更好了。

相关文章
|
12天前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
134 60
|
12天前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
1月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
62 3
|
21天前
|
Android开发 Swift iOS开发
探索iOS与安卓应用开发的差异性
探索iOS与安卓应用开发的差异性
42 2
|
1月前
|
Java Android开发 Swift
掌握安卓与iOS应用开发:技术比较与选择指南
在移动应用开发领域,谷歌的安卓和苹果的iOS系统无疑是两大巨头。它们不仅塑造了智能手机市场,还影响了开发者的日常决策。本文深入探讨了安卓与iOS平台的技术差异、开发环境及工具、以及市场表现和用户基础。通过对比分析,旨在为开发者提供实用的指导,帮助他们根据项目需求、预算限制和性能要求,做出最合适的平台选择。无论是追求高度定制的用户体验,还是期望快速进入市场,本文都将为您的开发旅程提供有价值的见解。
|
1月前
|
移动开发 前端开发 Swift
iOS 最好的应用程序开发编程语言竟然是这7种
iOS 最好的应用程序开发编程语言竟然是这7种
92 8
|
1月前
|
物联网 vr&ar Android开发
掌握安卓与iOS应用开发:核心技术与未来趋势
本文深入探讨了安卓和iOS应用开发的核心技术,包括开发环境、主要编程语言、常用框架以及性能优化技巧。同时,文章还展望了两大平台未来的发展趋势,如人工智能、增强现实和物联网的集成,为开发者提供全面的技术参考和发展指引。
|
27天前
|
开发工具 Android开发 Swift
探索iOS与安卓应用开发的异同点
【10月更文挑战第24天】本文通过比较iOS和安卓开发环境,旨在揭示两大移动平台在开发过程中的相似性与差异性。我们将探讨开发工具、编程语言、用户界面设计、性能优化及市场分布等方面,以期为开发者提供全面的视角。通过深入浅出的分析,文章将帮助读者更好地理解每个平台的独特之处及其对应用开发的影响。
|
1月前
|
安全 Android开发 iOS开发
深入解析:安卓与iOS的系统架构及其对应用开发的影响
本文旨在探讨安卓与iOS两大主流操作系统的架构差异,并分析这些差异如何影响应用开发的策略和实践。通过对比两者的设计哲学、安全机制、开发环境及性能优化等方面,本文揭示了各自的特点和优势,为开发者在选择平台和制定开发计划时提供参考依据。
55 4
|
2月前
|
开发工具 Android开发 iOS开发
掌握安卓与iOS应用开发:关键技术与未来展望
本文深入探讨了安卓和iOS平台下的应用开发技术,重点比较了两大平台的架构、开发工具和市场策略。通过分析最新的技术趋势和开发者社区的反馈,文章为读者提供了一个全面的对比视角,旨在帮助开发者做出更明智的平台选择和开发决策。
下一篇
无影云桌面