Objective-C开发:开始构建Mac和iOS应用

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Objective-C是基于C的高级编程语言,具有Smalltalk的其他功能和语法。它是C语言的超集,这意味着任何有效的C代码都将在Objective-C编译器中运行。这是该语言的设计者的有意决定,他们想确保该语言与现有的C应用程序和组件向后兼容,因为该语言在那时已用于大多数操作系统和实用程序编程中。 (1980年代初).

Objective-C的简短历史

Objective-C于1980年代初发明,旨在为C添加面向对象的编程功能。发明人Brad Cox和Tom Love认为Smalltalk(一种早期的OO语言)可以提供真正可重用代码所需的工具。并为系统开发人员创建开发环境.

Cox首先为C编写了一个预处理器,该预处理器允许包含类似Smalltalk的代码,然后将其呈现为可编译的C。这变成了一个完全面向对象的C扩展.

最终,Objective-C得到了完全定义,并在《面向对象程序设计:一种进化方法》一书中进行了描述.

NeXT在1988年获得了Objective-C的许可,并基于它开发了一些工具。这些工具最终(经过几个中间步骤)最终变成了Cocoa开发环境,该环境被多个Apple系统使用:

  • Mac OSX

  • 的iOS

  • 苹果WatchOS

几年来,为这些Apple操作系统之一编写的应用程序需要被编写(或编译为Objective-C或在其之上运行)。随着苹果将其平台转移到Swift,这种情况现在正在改变.

除了Cocoa之外,Objective-C还用于GNUstep平台,该平台可以在Linux,Unix,BSD和Windows环境上运行,并且与Cocoa密切相关。.

关于Objective-C语言

Objective-C是C的两个主要的面向对象派生之一,另一个是C ++。每种语言都采用了基础语言,并以不同的方式实现了对象定向。 (C的最新版本在面向对象的实现中紧随C ++而不是Objective-C。这导致C和Objective-C之间的进一步分歧。)

讯息传递

在大多数面向对象的语言(包括C ++)中,通过在对象上调用方法来调用函数。这种调用方法源自第一种面向对象语言Simula.

用于调用函数的Objective-C语法来自Smalltalk,该消息将消息传递给对象.

这种差异看似微不足道,但有许多含义。重要的是,函数调用可以在运行时而不是在编译时绑定到特定对象,从而实现更灵活的实现.

动态打字

与它的前身Smalltalk一样,Objective-C可以利用动态类型化。这意味着一个对象可以接收未在类接口中指定的消息,这会在C ++和许多其他语言中导致错误或异常.

因为消息不是直接的方法调用,所以不需要该对象具有要运行的方法。它可以通过消息转发将消息传递到另一个对象,也可以通过其他方式响应消息,或者引发错误。这使得更容易实现几种设计模式,包括代理模式和观察者模式。.

分类目录

类别是一种超类结构,它允许在运行时将方法添加到类中。这允许将方法添加到分类中,而无需重新编译那些类,甚至无需访问源代码。他们还可以替换现有的类方法.

此功能简化了大型复杂代码库的维护和扩展.

在线Objective-C资源

以下是可帮助您学习和使用Objective-C的资源。它们分为不同的类别,因此您可以更轻松地找到所需的信息-无论是编程基础知识,高级教育还是Objective-C工具.

Objective-C教程和入门资料

这些文档将使您以Objective-C程序员的身份开始学习,即使您没有使用该语言的经验也是如此。因此,如果您只是开始,那么这是您应该开始的地方.

  • Objective-C简介— Apple的Objective-C概述.

  • Objective-C简介—涉及高性能数学的开发人员对Objective-C和OpenStep平台的基本概述.

  • 可可和可可触摸的基本编程概念—可可环境简介.

  • 可可编码指南简介—有关使用Cocoa API的常规信息,使用Objective-C.

  • 为Objective-C编写文档— NSHipster关于Objective-C文档的指南。 (也就是说,文档是关于代码而不是语言编写的。)

  • 《 Objective-C入门指南:语言和变量》-Treehouse的初学者的Objective-C教程.

  • 尝试Objective-C-来自Code School的免费的,由五部分组成的Class-C课程.

  • 在24天之内学习Objective-C-来自Feifan Zhou的关于Objective-C的大型24部分课程。 (另请参阅binpress上的Objective-C教程的完整列表。)

  • 学习Objective-C-来自tut的另一部分Objective-C课程+.

  • Cocoa Dev Central —关于Objective-C的图解教程.

  • Ry的Objective-C教程-简要的快速参考资料以及对新手的全面介绍.

  • Objective-C教程—来自tutorialspoint的不错的(不令人惊讶的)教程.

Objective-C工具

以下Objective-C工具将使编码更容易,更强大。 Apple开发人员网络中提供的Objective-C工具尤其如此,该工具的年费为99美元,但还是值得的.

  • LispWorks for Mac —包括用于创建Objective-C类和调用方法的API —有关更多详细信息,请参阅《 LispWorks Objective-C和Cocoa用户指南和参考手册》。.

  • Objective-C编辑器-比编辑器更多的是集成开发环境,它使您可以在一个地方完成所有工作.

  • Apple Developer Network-尽管Apple Developer Network本身不是工具,但它可以访问许多出色的Objective-C工具,例如Xcode IDE和Foundation Framework.

  • Codebeat —一个分析系统,可帮助您着重于Web和移动开发来改进代码.

参考

以下文档提供了代码片段,备忘单和超文本文档,以使Objective-C编码更容易.

  • Objective-C备忘单— Objective-C中常见的高级主题的快速参考备忘单.

  • NSHipster伪书—适用于iOS和MacOS X开发人员的200多个Objective-C脚本.

  • 《 Objective-C运行时参考》 —来自Apple,有关OS X Objective-C 2.0运行时库的所有支持功能和数据结构.

  • Objective-C备忘单和快速参考—一页PDF,涵盖常见的Objective-C问题。非常适合挂在开发机器旁边的墙上.

出版商

以下是一些发布者,他们创建了Objective-C程序员感兴趣的内容.

  • Objc.io — objc.io出版有关iOS和OS X开发的高级技术和实践的书籍.

  • NSHipster — Objective-C,Swift和Cocoa中被忽略的部分的日记.

关于Objective-C的书

对于那些真正喜欢学习某个主题的人,这里有一些有关Objective-C的最佳书籍。其中包括针对刚起步的人,希望增加知识的人以及需要参考资料的人的书.

入门书籍

  • Objective-C编程:大书呆子牧场指南

  • 用Objective-C编程

  • Ry的Objective-C教程

  • Objective-C编程的基本要点

高级书籍

  • 有效的Objective-C 2.0:52种改善iOS和OS X程序的特定方法

  • 专业目标C

  • 适用于iOS的Pro Objective-C设计模式

相关书籍

  • Objective-C Pocket参考

  • Objective-C快速语法参考

Swift-Objective-C的后继者

如果您正在学习Objective-C,那么开始学习Swift也是一个好主意。.

Objective-C的主要用途是Apple Cocoa平台中的三个操作系统(OS X,iOS,WatchOS)上的应用程序。苹果公司宣布这些平台现在将切换到新的编程语言Swift.

以下是一些Swift资源:

  • Swift编程语言— Apple的Swift入门指南。另请参阅同名的iBooks书籍,也来自Apple.

  • Swift备忘单— Objective-C备忘单的创建者对Swift的快速高级参考.

  • 将Swift与Cocoa和Objective-C结合使用

  • Swift中的函数式编程

常问问题

在这里,我们回答了一些有关Objective-C的最常见问题.

什么是Objective-C?

Objective-C是C编程语言的超集。它主要类似于C,但是增加了类似Smalltalk的面向对象功能.

Objective-C用于什么?

尽管可以使用Objective-C编写适用于任何操作系统或平台的应用程序,但是Objective-C的唯一主流用途是在其三种操作系统上使用Apple Apps:Mac OS X,iOS,WatchOS.

我必须为Apple应用程序使用Objective-C吗?

否。除Objective-C以外,还有两个其他选择:

  • Swift-Swift编程语言是Objective-C的后继语言,Apple支持所有新开发的应用程序.

  • 在Objective-C或Swift上编译或运行-有几种方法可以构建可在Apple环境中运行的非本机应用程序。例如:

    • 电话间隙
    • 代号一

    • 加速器

是Objective-C死了?

不。Objective-C仍然是值得学习的语言,至少出于以下几个原因:

  • 目前,Swift的Cocoa API尚未完全成熟。在一段时间内,Objective-C仍将是充分利用Cocoa平台的唯一途径.

  • 此外,可可的基础是用Objective-C编写的。即使Swift完全成熟后,这种情况也不大可能很快改变。如果您要编写需要对平台有深入了解的复杂应用程序,则需要使用Objective-C.

  • 直到最近,所有Apple应用程序都是用Objective-C编写的,而且许多应用程序仍在使用。这意味着,如果您负责维护,扩展或增强这些现有应用程序,则需要了解Objective-C.

Objective-C与C有何不同?

Objective-C包含所有C,然后使用Smalltalk的语法向其中添加面向对象的原理.

Objective-C与C有何不同++?

C ++和Objective-C都是解决向C编程语言添加对象定向问题的不同解决方案.

Objective-C使用Smalltalk作为实现对象定向的模型,而C ++使用Simula.

我可以在非Apple系统中使用Objective-C吗?

是。只要在系统上安装了必需的运行时,就可以在任何地方使用Objective-C.

但是,这样做不是很常见,通常有更好的(更完全受支持的)方式为其他平台编写应用程序.

在非Apple环境中使用Objective-C的最引人注目的原因可能是将Apple App移植到Windows或Linux时。在这种情况下,您还需要复制可可框架,您可以使用GNUstep.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map