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

相关文章
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
861 60
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
472 3
|
人工智能 vr&ar 数据安全/隐私保护
探索iOS应用开发的新趋势
在数字时代的浪潮中,iOS应用开发领域正经历着翻天覆地的变化。从增强现实(AR)的融入,到人工智能(AI)的广泛应用,再到隐私保护的重视,这些新趋势不仅重新定义了用户体验,也为开发者带来了前所未有的挑战与机遇。本文将深入探讨这些变化如何影响着iOS应用的开发,以及开发者如何利用这些新技术创造出更加智能、安全且引人入胜的应用。
|
开发框架 前端开发 Android开发
探索安卓和iOS应用开发中的跨平台解决方案
【10月更文挑战第42天】在移动应用开发的广阔天地中,安卓和iOS系统如同两座巍峨的山峰,分别占据着半壁江山。开发者们在这两座山峰之间穿梭,努力寻找一种既能节省资源又能提高效率的跨平台开发方案。本文将带你走进跨平台开发的世界,探讨各种解决方案的优势与局限,并分享一些实用的代码示例,助你在应用开发的道路上更加游刃有余。
|
Android开发 Swift iOS开发
探索iOS与安卓应用开发的差异性
探索iOS与安卓应用开发的差异性
288 2
|
移动开发 前端开发 Swift
iOS 最好的应用程序开发编程语言竟然是这7种
iOS 最好的应用程序开发编程语言竟然是这7种
716 8
|
API Android开发 iOS开发
掌握安卓与iOS应用开发中的依赖注入技术
本文探讨了在安卓和iOS应用开发中,如何有效利用依赖注入技术来提升代码的模块化、可测试性和可维护性。通过对比分析两种平台下依赖注入的实现方式与工具,本文旨在为开发者提供一套清晰、实用的依赖管理策略,助力打造高质量软件产品。
|
Java Android开发 Swift
掌握安卓与iOS应用开发:技术比较与选择指南
在移动应用开发领域,谷歌的安卓和苹果的iOS系统无疑是两大巨头。它们不仅塑造了智能手机市场,还影响了开发者的日常决策。本文深入探讨了安卓与iOS平台的技术差异、开发环境及工具、以及市场表现和用户基础。通过对比分析,旨在为开发者提供实用的指导,帮助他们根据项目需求、预算限制和性能要求,做出最合适的平台选择。无论是追求高度定制的用户体验,还是期望快速进入市场,本文都将为您的开发旅程提供有价值的见解。
|
物联网 vr&ar Android开发
掌握安卓与iOS应用开发:核心技术与未来趋势
本文深入探讨了安卓和iOS应用开发的核心技术,包括开发环境、主要编程语言、常用框架以及性能优化技巧。同时,文章还展望了两大平台未来的发展趋势,如人工智能、增强现实和物联网的集成,为开发者提供全面的技术参考和发展指引。

热门文章

最新文章