Objective-C & Sprite Kit太空历险记 : 1.欢迎加入“OC & SK舰队”

原文  http://www.ituring.com.cn/article/211266

首先说明一下,“OC & SK舰队”的全称是“Objective-C和Sprite Kit太空联合舰队”,其中,Objective-C和Sprite Kit都是来自苹果平行宇宙的异次元技术,他们在这里的目的就是帮助我们打造太空舰队,进一步探索神秘而又有趣的iOS和OS X星系。

下面是Objective-C和Sprite Kit的简历。

Objective-C是一种基于C语言的面向对象的开发语言,现在,主要存在于Apple公司的产品开发,对于OS X和iOS系统的探索是它唯一的目标。虽然Apple公司已经发布了另外一种编程语言Swift,但它完全取代Objective-C恐怕还需要一些时日。

Sprite Kit是一套功能强大的开发库,它针对多媒体开发资源进行了大量的封装,包括二维图形、游戏场景、模拟物理环境、动画、声音播放等方面的开发和应用,为开发者提供了极大的便利。

如果梦想加入OC & SK舰队,你的目标一定是想在OS X或iOS系统中开发游戏或多媒体类型应用的朋友。是的,你没有选错,Objective-C和Sprite Kit的组合的确是一个不错的选择。

当然,要完成iOS和OS X应用的开发任务,只依靠Objective-C和Sprite Kit是不够的,本书中,除了这两个主角,我们还介绍了所需要使用的很多技术和方法,如以及如何使用应用内购买、集成广告和应用发布等相关内容。

立正!稍息!解散!队列训练完毕,下面继续!

加入太空联合舰队,经历危险的太空冒险并不是一件容易的事,作为一名即将加入舰队的新兵,还有很多工作要做,接下来的学习和训练的科目包括:

  • 参观控制室——Xcode
  • 战斗体验——第一个程序
  • 永远需要支援——获取帮助

1.1. 参观控制室——Xcode

对于新兵的提示:舰队基地很大,大家各尽其职,不要随便串门!如果你走错了地方,安全人员可能会把你当作间谍的,因为在基地里经常会发生一些奇怪的事情,谁知道是不是有人故意在搞破坏呢。

接下来,我们来到了OS X星系的前哨基地,为了对新环境中的工作有一个初步了解,我们将要参加基地的总控制室,部门代号“Xcode”。

现在,你应该已经在基地里了,如果你掉队了,请打开你的Mac。在Dock区找到Launchpad图标(火箭形状的那个),然后,我们在其中找到Xcode图标,这里就是控制室所在地了。当然,如果Dock中有了直达电梯,我们就可以更方便地进入Xcode。

友情提示,打开Xcode后,在Dock中的Xcode图标上,按住Control键,然后再单击鼠标,在菜单中选择“选项”->“在Dock中保留”。如果你是双键鼠标,可以直接使用右键菜单(要不怎么说来自苹果宇宙的技术就是有一些不一样呢)。

对了,说了这么久,还没告诉大家Xcode部门的标志呢,下面的图标就是了,别走错了哈^^。

Xcode部门是什么来路?

Xcode是Apple公司官方出品的集成开发环境,开发iOS和OS X应用程序,这也许是比较合适的工具了,我们可以从App Store免费获取这个开发工具。

当我们点了Xcode的开门键以后会出现什么呢?一般会出现一个“选择面板”,如下图所示。

在这里,系统会确认你的身份,如果是工作人员或实习生,你可以选择自己的工作岗位(在右侧列表中选择正在进行的项目),然后可以直接进入自己的工作环境。如果是新人(或者只是来打酱油的),可以先来个模拟工作环境参观一下,此时,我们选择“Create a new Xcode project”创建新的项目,在介绍Objective-C编程语言及常用开发资源等内容时,我们会使用简单的项目类型,即OS X命令行工具项目(Command Line Tool),如下图。

单击“Next”按钮,在界面中,我们设置项目名称,如下图。

本例中,我们设置的项目名称为OCDemo,大家可以根据自己的爱好来设置项目名称,然后单击“Next”按钮,选择项目存放的位置后,单击“Create”按钮,即可完成项目的创建。

项目创建后,我们可以看到开发环境的主界面,如下图。

此外,如果没有看到欢迎界面,我们还可以在屏幕的顶端看到主菜单,通过其中的"File"->"New"->"Project",我们同样可以创建OS X下的Command Line Tool项目。

现在,我们已经进入Xcode的指挥大厅,大家请配合一下。

预备!走!

“哇,好大、好复杂的指挥室呀!果然高端!大气!上档次!”。这也许是很多初学者第一次打开Xcode以后的感觉,不过没关系,有士官带领我们参观并解释。友情提示,士官发音是男声还是女声完全由读者自己决定。机器人吗?也许是生化战士也说不定。

上图中,我们可以看到Xcode界面的四个主要组成部分,最上方的是工具栏,下面三个部分,从左到右分别是导航栏、编辑栏和右栏;其中,右栏的内容会根据当前选择项的不同而变化;通过工具栏最右侧的按钮,我们可以选择打开或关闭这三个部分,如下图所示。

接下来,我们的训练科目,会有很多实习内容需要到Xcode部门来实际操作。

1.2. 战斗体验——第一个程序

作为新兵的必修课,体验真实的战斗是必须的一个课目,前面,我们已经来到了OCDemo项目的战位,当然,这只是实习项目,并不是真正的战斗。

项目OCDemo,Command Line Tools类型项目,新兵的初级训练项目,在很长一段时间内,我们都会在这里相关训练。

现在,在导航栏中,我们单击选择main.m文件,如下图(已关闭右栏)。

如果不小心按了键盘上的Command+R键,或者是点击了工具栏中的小三角图标,你会发现,在界面的下方出现了一条信息,如下图所示。

关于Xcode部门,他的主控电脑叫作“小X”(我起的名字^^);小X是一台超级量子计算机,有着超高的AI水平。

我们看到,小X已经给我们发出了一条“Hello World”信息,只是把我们的名字叫错了(AI也不是很高吗^^)。好的,我们可以将“World”修改为自己的名字,这样,小X就真的是在给我们打招呼了。

训练课目到!这么快?!是的,我们可是太空联合舰队的一员!没有时间只玩Hello这类的小游戏;作为一项最基本的训练,我们必须学会区分代码中一系列内容的类型和作用,它们都使用不同的颜色来区分,就像大型太空战舰上的舰员会根据不同的工作岗位穿着不同颜色的工作服一样。

首先是穿着绿色工作服的代码,它们只是说明性文字,本例中,它们都是以//开始的行,删除它们不会对运行结果有任何的影响。说干就干,下面就是去掉了绿色文字以后的内容。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        NSLog(@"Hello, World!");
    }
    return 0;
}

这些代码就是程序需要执行的内容,我们快速看一下小X的解释。

第一行代码,#import指令用于导入当前代码文件中所需要使用的资源,需要使用什么工具说一声就是了。一般情况下,我们会导入头文件(.h文件),这和C或C++代码中使用的#include指令的功能是相同的。此外,在导入头文件时,有两种格式可以使用:

  • 使用<>包含头文件,用于包含系统资源,如代码中的Foundation.h文件。
  • 使用""包含头文件,用于包含“外部”资源,比如自己创建的头文件。

接下来的main()函数,相信了参加过C语言部队的朋友们一定不会陌生,没错,它就是程序的入口,一切代码都会这里开始执行。它的两个参数也与C语言中的定义是相似的,即args带入命令行中参数的数量,而argv则带入命令行中参数的值。

再看@autoreleasepool指令,不明白是什么,我们拆开来看就是auto release pool,自动释放池?这是什么东西呢?这实际上是Objective-C中一种新的内存自动管理方法,称为ARC(Automatic Reference Counting,自动引用计数)。

在Objective-C代码中,我们使用ARC技术,可以有效地对内存进行自动管理,将程序员从复杂的内存管理工作中解放出来,如果你在C语言中使用过malloc()、free()等函数手工分配过内存,也许就会明白我在说什么了。当然,没有玩过C也没关系,现在我们只需要知道,使用Objective-C编程时,在main()函数中使用@autoreleasepool指令就可以使用ARC了。

NSLog()函数用于显示调试信息,其中,第一个参数是显示的内容,可以包含格式化字符,从第二个参数开始是格式化字符所对应的数据。如下面的代码。

int intNum = 1;
NSLog(@"intNum = %i", intNum);

最后的return语句用于向函数的调用者返回执行结果,活干的怎么样,给系统发个信号,一般来讲,代码0就意味着任务O了。在这里,对于main()函数来讲,它的调用者就是操作系统。

本例中,我们主要处理了一条文字信息,在代码中使用一对双引号包含,我们称之为字符串(string);在Objective-C中,我们可以使用两种风格的字符串:

  • C风格字符串,即使用字符数组(char[])组成的字符串,结束由ASC II码中的0值(NULL)字符结束,在字符串中使用转义字符"\0"表示。
  • 字符串对象,即NSString对象。在上面的代码中,我们在字符串前使用@符号就是说明这个字符串定义为NSString对象。大部分情况下,我们会使用这种字符串。

关于更多字符串的处理,我们会在第7章详细介绍。

1.3. 永远需要支援——获取帮助

“OC & SK舰队”是一个庞大的组织,只有每一位成员都充分发挥作用,太空探险的的任务才可能顺利进行,所以,对于新兵的一点提示就是,你永远需要支援!

在Xcode环境中,我们可以快速呼叫支援,如果你对哪一部分内容不太明白,可以首先按住Option(Alt)键,然后将鼠标指向需要了解的资源,当鼠标变成问号图标时,单击就可以显示此资源的基本信息,通过其中的蓝色链接可以了解更多的内容。

此外,你还可以通过超时空链接到苹果宇宙中的异次元空间获取更多、更全面的参考资源,不过,这些资源的信息都是通过字母传递的。相关的链接通道包括:

  • https://developer.apple.com/(Apple开发者首页)
  • https://developer.apple.com/resources/(开发工具、文档等资源)

现在,你已经可以结束新兵的身份了,前提是已经了解了如何在Xcode中编写代码并执行程序,这样,你才能进一步地加入初级训练营,开始Objective-C的系统学习,如果你已准备就绪,我们马上进入下一章。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值