iOS编程实战宝典(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-25 09:49:47

点击下载

作者:曾源

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

iOS编程实战宝典

iOS编程实战宝典试读:

前言

为什么要写这本书

有人问,现在是什么时代?这个问题对于每个人都有属于自己的答案。但随着移动科技和互联网的飞速发展,对我们而言,如今已经是移动互联网的时代。在这短短几年时光里,iOS平台已经成为这个领域的霸主。

由于iPhone那让人赞叹不已的外观设计和操作体验,特别是苹果提供了App Store这种突破性的软件营销方式,使得iOS系统改变了手机世界的格局,改变了整个互联网。程序员要想进入iOS开发行业,除了掌握Objective-C语言基础外,还要融会贯通各种开发框架,最好还要熟悉应用开发中有典型意义和实用价值的各类开发实例及案例。这样才能在就业严峻的市场环境中有较强的职场竞争力和职业前景。

目前图书市场上关于iOS开发及框架整合的图书不少,但真正从实际应用出发,以代码实战为基础,通过各种开发模块和项目案例来指导读者提高应用开发水平的图书却很少。本书便是以实战为主旨,通过iOS开发中最常见的开发模块和项目案例,并辅以实战练习题,让读者全面、深入、透彻地理解iOS开发的各种热门技术及其整合使用,提高实际开发水平。本书有何特色

1.包含iOS开发中常用的技术范围,以及当下流行的开发框架及其整合使用

本书详细介绍了iOS开发中最常用、最重要的技术要点,如大量基础和高级控件、多媒体、定位、数据存储、重力感应、加速计、本地化、触屏和手势等。并且还会带领读者探索一些当下最流行的框架(如Three20)。读者在感叹其强大之余,将学习如何为我所用。

2.内容涉及多个iOS系统版本

本书内容涉及iOS 4到6的多个版本,如故事版、GCD等,帮助读者与开发前沿保持同步,既方便低版本开发者快速过渡,也有助于初学者更全面地了解iOS。

3.对iOS开发的各种技术做了原理上的分析

本书从一开始便对Objective-C开发语言和iOS开发的环境配置做了基本介绍,并对iOS开发的各种技术进行了原理性的分析,便于读者透彻地理解每项技术背后的原理和实际应用。

4.开发实例及项目案例典型,实战性强,有较高的应用价值

本书从第2章起,每章在讲解技术点的过程中都提供了至少一个代码实例。这些实例来源于作者所开发的实际项目,具有很高的应用价值和参考性。而且这些实例分别使用不同的技术实现,便于读者融会贯通地理解本书中所介绍的技术。

5.提供完善的技术支持和售后服务

本书提供了专门的技术支持邮箱:bookservice2008@163.com。读者在阅读本书过程中有任何疑问都可以通过该邮箱获得帮助。本书内容及知识体系

第1篇 基础篇

(第1~3章)

本篇介绍了如何加入苹果开发者计划以及搭建iOS环境,讲解了iOS开发的基础语言Objective-C的语法和要点,并通过一个简单的程序实现快速入门。

第2篇 UI开发篇(第4~9章)

从本篇开始,读者将详细地学习iOS开发中UI界面、程序架构的实现。内容主要包括基础控件(按钮、标签、滑块、图像视图、输入框、开关、分段、警告框等),还将学习利用iOS提供的模块实现多视图(选项卡栏控制器、导航视图控制器),在掌握如何使用的同时,还会为读者剖析其原理。

第3篇 高级篇(第10~19章)

本篇内容上升了一个层次,主要包括故事版(Storyboard)、数据存储、后台处理、触摸手势、定位、重力感应、多媒体和本地化等。经过本篇的训练,读者的技术水平将得到非常大的提升,本篇每章的示例程序都会有详细的步骤讲解和代码分析,从一定程度上也可以了解软件开发的周期。

第4篇 实战篇(第20章和21章)

本篇首先通过一个兼容iPhone和iPad的APP开发,让读者了解了在实际的iOS开发中两者的区别。然后介绍当下非常流行的第三方开源框架Three20,包括源代码的下载、配置及基本使用,而且分析其组成部分和提供的接口,并最终使用它开发出一款属于自己的菜谱APP。目前iOS有许多优秀的开源框架,本篇也会向读者推荐一部分。适合阅读本书的读者

❑ 需要全面学习iOS开发技术的人员;

❑ 有一定开发经验而想转行移动开发的人员;

❑ 希望提高项目开发水平的人员;

❑ 专业培训机构的移动开发学员;

❑ 软件开发项目经理;

❑ 需要一本案头必备查询手册的iOS开发人员。阅读本书的建议

❑ 没有Objective-C语言基础的读者,建议从第1章顺次阅读并演练每一个实例。

❑ 有一定iOS开发基础的读者,可以根据实际情况有重点地选择阅读各个章节和案例。

❑ 对于每一个技术难点和案例,先自己思考一下实现的思路,然后再阅读,学习效果会更好。本书作者

本书由曾源主笔编写。其他参与编写的人员有杜礼、高宏、郭立新、胡鑫鑫、黄进、黄胜忠、黄照鹤、赖俊文、李冠峰、李静、李为民、邱罡、邱伟、隋丽娜、王红艺、王健、王玉磊、魏汪洋、吴庆涛、肖俊宇、谢建、辛永平、徐翠霞、徐勤民、薛富实、杨春蕾、张光泽、张明川、张晓静、赵海霞、郑波、郑瑞娟、郑伟、周巧姝、周瑞、盛杰、李群、阿拉塔、毕梦飞、高洪涛、曹亦男、曾龙英、曾敏、柴延伟。

虽然笔者对本书中所述内容都尽量核实,并多次进行文字校对,但因时间所限,可能还存在疏漏和不足之处,恳请读者批评指正。编著者第1篇基础篇

第1章 iOS开发概述

第2章 介绍Objective-C和iOS SDK第3章 iOS开发起航第1章iOS开发概述

如今手机上的应用软件越来越多地受到人们的关注,随着移动互联网时代的来临,智能手机和平板电脑等移动设备成为下一代互联网的终端已是大势所趋。而移动互联网的便携性和多元性等优势决定了嵌入式应用将会比现在的互联网应用更加普及,将会给用户提供更加便捷的服务。

自2007年6月苹果公司发布了第一代iPhone起,iPhone手机以其时尚的设计和超强的性能,迅速成为这一市场的佼佼者。如今苹果应用商店的下载早已突破了50亿次,如此惊人的数字,无一不宣示着iOS开发的光明前景,相信在今后很长一段时间,iOS都会是一个极具竞争力的平台。

苹果公司提供了完整、详细的开发文档、SDK和快捷强大的开发工具等,开发者可以充分地使用这些利器,并发挥自己的创造力,也能在iOS的世界里创造属于自己的优秀产品。

1.1 本书的宗旨

本书介绍了iPhone SDK和iPhone开发的相关知识,并对iPhone开发的基本流程、原理和原则进行了详细讲解。其中也对iOS开发所用的Objective-C语言,开发工具Xcode和可视化编程工具Interface Builder进行了深入浅出地介绍。

本书不仅仅为读者揭示开发原理,还指导读者创建一系列应用程序,让读者能在实践中理解iPhone应用程序的运行方式和构建方式,掌握具体的iPhone特性。

全书共21章,分为4篇。

❑ 第1篇主要介绍iPhone开发中的基础知识和iPhone开发工具的使用。

❑ 第2篇主要通过示例演示了iPhone界面常用的基础控件,包括构建程序常用的试图控制器。

❑ 第3篇是向开发者介绍iPhone开发中的一些高级操作,属于进阶篇。

❑ 第4篇通过典型的程序强化读者对iOS特性的学习,充分理解如何和SDK交互。

在一定程度上也是让读者开发属于自己的iOS程序。

1.2 iOS开发的特点

没有做过iPhone开发或者Mac开发的人员第一次接触iOS开发,面对iOS开发独有的Objective-C语言、Cocoa库可能显得有些手足无措。不过没关系,只要认真按照本书的教学流程学习,就会循序渐进地掌握iOS的开发要点。

iOS设备向开发人员展示了一个全新的世界,从多点触摸到媒体播放,从重力感应到人性化操作,这些让人激动万分的功能都等待着读者去探索。iOS平台有很多与众不同之处,这些特点需要开发者必须理解和认识到。

注意:iOS是一个封闭的平台,相较其他开放的手机操作系统平台有较多的限制。因此,某些涉及硬件底层或者系统安全性的功能可能在iOS开发中无法实现。1.2.1一次只能运行一个应用程序

在iPhone上,一次只能运行一个应用程序。当我们用手指触摸一个程序的图标时,系统就会在屏幕上打开这个程序,如果要运行另一个程序,需要按下Home键把当前运行的程序退出或者放到后台,然后再单击其他程序图标。

用户一次只能操作一个应用程序。例如,当前正在用iPhone发送电子邮件,如果想打开摄像头拍下一张稍纵即逝的风景,那么必须把邮件退到后台,才能切换到拍照功能。1.2.2 一个应用程序只有一个窗口

iPhone的界面只允许当前正在运行的应用程序显示一个窗口。当前程序与用户所有的直接交互都是在这个窗口上完成。iPhone应用程序可以包含许多的窗口,但是用户不能同时访问,只能依次访问和查看。而在PC和笔记本的各种操作系统环境中,可以同时运行多个程序,可以同时打开多个窗口。所以iPhone的这个特点是与桌面操作系统不同的,需要注意。1.2.3 数据访问机制

iOS的数据访问机制又被称为沙盒机制。由于iPhone的权限和封闭性,只能在iPhone为应用程序创建的文件系统(此区域被称为沙盒)中读写文件,不可以去其他地方访问。所有的文件都可以保存在此,如图像、配置文件、声音、映像、属性列表、文本文件等。其特点总结如下:

❑ 每个应用程序都有自己的存储空间;

❑ 应用程序不能访问别的应用程序空间的内容;

❑ 应用程序请求的数据都要通过权限和安全性检测。1.2.4 屏幕尺寸限制

iPhone 4的显示屏为3.5英寸、高320点和宽480点,如图1.1所示。不过,由于配置了优秀的Retina屏幕,iPhone 4像素为640×960。更早的设备如iPhone 3GS等设备的分辨率为320×480。iPad 2的屏幕大小为9.7英寸,具有1024×768像素。整体来说,iOS设备的屏幕都不是很大,因此开发者需要在有限的物理屏幕上实现自己的程序设计。图1.1 iPhone 4的屏幕大小为320×480点1.2.5 响应时间限制

手机开发对用户的体验提出了极高的要求,因此应用程序需要具备较快的响应时间,并且必须要考虑响应超时的问题。启动应用程序时,需要载入首选项和数据,并尽快在屏幕上显示主视图,这一切操作要在几秒之内完成。如果用户按Home按钮,iOS就会返回到主页。应用程序如有需要保存数据,那么必须在5秒内完成相关操作,否则应用程序进程将终止,无论数据是否已经完成保存。1.2.6 设备资源限制

iOS设备的物理内存通常分为1GB(iPhone 5、iPad 4)和512 MB(iPhone 4)两种,还有部分设备的内存只有256MB。内存的作用一部分用于屏幕缓冲和其他一些系统进程。通常,不到一半(也可能更少)的内存将留给应用程序使用。Cocoa Touch提供了一种内置机制,可以在内存不足的情况下通知应用程序。出现这种情况时,应用程序必须释放不需要的内存,甚至可能被强制退出。1.2.7 交互限制

iPhone没有键盘和鼠标,因此采取了不一样的交互方式。用户界面通过多触摸的方式进行操控,利用触摸技术反而可以实现许多桌面操作系统不能实现的效果。例如,在应用程序中添加一个文本框,当用手指去触摸这个文本框的时候,键盘就会自动弹出。加速计也是iPhone创新出的一项交互技术,例如iPhone 4指南针的应用就是利用加速计来调整方向的,一些赛车游戏的应用,是用加速计来控制方向盘。

1.3 iOS的独特功能

iPhone还有许多强大的功能,开发者可以方便地嵌入到自己的应用程序中来使用。本节将会介绍这些功能:Game Center、Storyboard、Twitter、iCloud、通知中心和Passbook。1.3.1 Game Center

自从iOS 4开始,iPhone中自带的应用程序包含了Game Center,可以使读者的朋友或即将成为朋友的伙伴们加入到行动中来。通过iOS SDK中的Game Kit API,可以将应用程序接入到苹果的社区游戏网络中,为用户增加另一种乐趣。图1.2所示是Game Center的图标。1.3.2 Storyboard

自从iOS 5开始,可以利用Xcode设计工具中的新功能Storyboard来为应用程序设计工作流。针对使用导航栏和标签栏来在各个视图间切换的应用程序的用户而言,Storyboard简化了管理视图控制器的开发过程。它可以指定需要切换的视图以及过渡的顺序,而不用手写代码。图1.3所示是Storyboard的图标。图1.2 Game Center图1.3 Storyboard1.3.3 Twitter

Twitter是一个社交网络和微博服务,直白地说,就是外国人用的微博。自从iOS 5开始,Twitter开始集成在系统中,应用程序直接使用新的Tweet表单提供Tweet功能。它提供的所有功能都能够内嵌到读者的程序中,包括短网址工具、添加当前位置、计算字符数,以及在Twitter上发表图片等等。如果读者的应用程序是Twitter客户端,那么使用Twitter API可以很容易和一站式登录服务集成,甚至将现有的账户迁移到iOS上。图1.4所示是Twitter的图标。

注意:iOS 6集成了国内的新浪微博。1.3.4 iCloud

iCloud也是从iOS 5中添加的新特性,iCloud API使程序将用户文档和关键数据存储到iCloud中,并同时将改动推送到用户所有的计算机和设备上,这一切操作都是自动的,用户再也不用担心自己的照片和通讯录等数据会丢失了。图1.5所示是iCloud的图标。图1.4 Twitter图1.5 iCloud1.3.5 通知中心

通知中心提供了一种新颖的、不需要打断用户就能方便地显示和管理程序通知的方式。iOS的通知中心是基于现有的通知系统构建的,所以现存的本地通知和推送通知仍然可以工作。推送通知现在已经嵌入到Xcode中了,方便开发者在程序中实现这一功能。图1.6所示是通知中心的图标。1.3.6 Passbook

Passbook是iOS 6系统提供的一个全新应用,它可以存放登机牌、会员卡、电影票和购物优惠券等票券信息。该功能将整合来自各类服务的票据,对用户来说它有什么用处呢?比如快到达星巴克时,Passbook会弹出一张卡片的信息,提示你星巴克就在附近。再者这些卡片的信息还是在线的,所以当你的登机牌更新了信息或发生了变化,卡片也会进行更新。苹果已经对开发者开了放此功能。图1.7所示是Passbook的图标。图1.6 通知中心图1.7 Passbook

注意:iOS上有趣且强大的功能还有很多,如Siri(语音助理),其中许多功能都可以内嵌到自己的程序中。

1.4 加入Apple开发者计划

在开始开发iPhone软件之前,需要做一些准备工作。对于开发者来说,需要一台运行苹果Macintosh操作系统的电脑,因为iPhone开发只能在基于Macintosh操作系统的环境下完成。苹果喜欢用动物命名自己的操作系统,目前常见的操作系统有Lion、Mountain Lion。而苹果公司的Mac系列计算机如MacBook或Mac Mini就是最合适的开发工具。

准备好了硬件设备,还需要注册成为iPhone开发人员。只有完成了这一步,苹果公司才允许下载iPhone SDK(软件开发工具包)。iPhone SDK中包含了开发必须的Xcode,它是苹果公司的IDE(集成开发环境)。1.4.1 开发者账号

苹果开发者注册有两种账户。(1)标准的开发者,一年费用为99美金。苹果开发者希望在App Store发布应用程序,则可以加入iOS开发者标准计划。开发者可以选择以个人或公司的名义加入该计划。(2)企业账户,一年费用为299美金,还要注册一个公司Dun&Bradstreet(D-U-N-S)码,这个账户可以注册任意多个设备。如果开发者希望创建部署于公司内部的应用,并且其公司雇员不少于500人,则可以加入iOS开发者企业计划。

当然也可以不缴纳任何费用加入Apple开发人员计划,不过免费和收费之间存在一定的区别。免费会受到一定的限制,最大的一点就是无法把程序运行在真实设备上,只能在开发工具的模拟器里测试,也不能在App Store中发布程序。

注意:在注册过程中,苹果会核实登记实体的身份,因此需要提交个人或公司的身份证明文件。1.4.2 加入Apple开发人员计划

无论是大型企业还是小型公司,又或者是个人开发者,步入iOS开发世界前都需要从Apple网站开始。打开http://developer.apple.com/programs/start/standard/页面开始注册,具体效果如图1.8所示。图1.8 注册流程

从图1.8中可以看到,要注册苹果开发者总体分为三个步骤。(1)选择账户类型(Choose an enrollment type)

我们必须要选择一种账户类型,选择个人账户还是企业账户。前面说过,这两种账户的收费以及申请标准都不一样。(2)提交信息(Submit your information)

苹果会针对注册的账户类型,要求提交不同的申请信息。个人账号包含地址和姓名等;企业账号还要提交D-U-N-S码。如果企业没有申请过该码,可以根据网站上的链接去申请。苹果对开发者的身份审核比较严格,个人账号要给苹果传真身份证的扫描件,企业账号需要给苹果传真营业执照的扫描件。(3)缴费(Purchase and activate your program)

苹果审核通过信息后,就会要求开发者付款,具体费用不再重复。购买完成后,苹果会在24小时内发送一封电子邮件告知下一步的操作。

开发者必须先拥有一个苹果账号(Apple ID),才能加入开发者计划。如果读者使用过iTunes、App Store或者其他苹果服务,可以直接使用当时的账号,在注册过程中,苹果也会进行提示。单击页面上的Continue按钮,决定创建Apple ID还是使用现有的Apple ID,如图1.9所示。图1.9 Apple ID提示1.4.3 创建Apple ID

如果还没有Apple ID,选择Create an Apple ID选项,单击Continue按钮,进入到注册界面,我们必须在个人(Individual)和公司(Company)之间做出选择,如图1.10所示。图1.10 选择账户类型

选择完成后,苹果会要求开发者输入一些账号信息,如图1.11所示。Apple ID都是用邮箱作为名称,密码在位数和组合上也有一定的条件,读者只要按照提示来操作就可以了。图1.11 创建Apple ID流程

Apple ID创建完成后,重新开始加入开发者计划的步骤,然后根据提示说明一步步操作就可以了。

1.5 下载和安装Xcode

Mac开发者计划和iOS开发者计划的会员可以获取最新的Xcode开发工具。Xcode提供了各种实用工具,用于创建和调试源代码。SDK里还包含一个模拟器,它支持在Mac上运行大多数iPhone和iPad程序,方便开发者在模拟器上看到程序在真实设备上运行的效果。1.5.1 下载Xcode

如果读者的电脑装载了苹果Lion或以上的操作系统,那么可以直接从Mac App Store中免费下载。苹果开发人员可以在http://developer.apple.com/xcode网站上免费下载Xcode,如图1.12所示。Xcode都包含了Mac OS X和iOS的最新SDK。图1.12 下载Xcode

单击View in Mac App Store按钮,系统会在Mac版的App Store里打开下载链接,也可以单击View Downloads链接。这里提供了Xcode所有的历史版本,方便直接下载,如图1.13所示。图1.13 包含Xcode以及iOS固件各个版本1.5.2 安装Xcode

安装Xcode的方法十分简单,参考下面的步骤。(1)双击下载成功的Xcode安装包,弹出“安装‘Xcode' ”的界面,如图1.14所示。图1.14 Xcode安装提示界面(2)单击“继续”按钮,弹出协议界面,如图1.15所示。图1.15 Xcode安装协议界面

这里介绍了开发者需要遵守的相关开发协议,单击“继续”按钮。在安装Xcode的时候,基本是只需要单击“继续”按钮或者Continue按钮,不用再搭建其他的开发环境。确认完协议后,弹出安装目录界面,如图1.16所示。图1.16 Xcode安装目录界面

安装的软件包包含Essentials、System Tools和UNIX Development。其中Essentials目录包含了SDK和Xcode,是必选的;其他两个软件包包含了一些辅助工具。根据下载的Xcode版本不同,软件包目录也会有相应的不同。安装的时候,只需要始终保持默认选择即可。单击“继续”按钮,需要验证管理员账号和密码。验证完毕后开始自动安装。

安装完成后,打开系统盘,在Developer|Applications后目录下就可以看到Xcode应用程序图标“Xcode.app”,安装路径如图1.17所示。图1.17 Xcode安装路径

注意:目前较新的Xcode版本安装时直接复制到应用程序下就可以了,安装步骤都省略了。

1.6 小结

学习本书前,读者应该具备一定的编程知识,并理解面向对象编程的基础。SDK中的Cocoa Touch是本书使用的主要工具,它使用的是Objective-C编程语言。但是如果读者不了解Objective-C语言的新增特性也没有关系,后面章节的内容我们将重点介绍要使用的2.0语言特性,并解释其工作原理和使用它的原因。

读者还应该熟悉iPhone手机的各种特性,并了解iPhone界面以及iPhone程序的外观。

1.7 习题

【问答题】

1.iPhone应用程序采用了哪种数据访问方式?

2.个人是否可以加入企业级开发者计划?

3.开发iPhone应用程序的工具叫做什么?第2章介绍Objective-C和iOS SDK

Objective-C语言是扩充C的面向对象编程语言,作为唯一一种可以为iPhone和iPad编程的语言,其已经为越来越多的开发者熟知。读者也许从未接触过这类语言,不过没关系,本章将会带领读者学习Objective-C语言的一些与众不同的语法和特性,还会为读者介绍iOS SDK的结构和组件等,让读者熟悉SDK原理、学习Xcode基本的操作。

本章主要涉及到的知识点如下。

❑ Objective-C属性:学习Objective-C的变量属性使用和说明。

❑ 协议与代理:了解协议和代理的原理,学习创建一个Xcode工程。

❑ 引用计数:学习Objective-C的引用计数原理,了解ARC。

❑ SDK简介:了解SDK的体系结构,基本开发组件。

2.1 介绍Objective-C

Objective-C语言是在1980年代初,由布莱德·确斯(Brad Cox)在其公司Stepstone发明的。iOS选择Objective-C作为开发语言,大致可以归结为以下三个原因。(1)它是一个面向对象的语言,苹果Cocoa框架中的很多功能必须通过面向对象的技术来呈现。(2)它兼容标准C语言,也就是说在Objective-C里运行C语言代码是完全支持,不会有任何问题的。现存的C程序无须重新开发就能够使用Cocoa软件框架,并且开发者可以在Objective-C中使用C的所有特性。(3)Objective-C它的语法简单,十分易于学习。Objective-C语言结构良好,有助于初级开发者熟悉面向对象的设计思想。

对于用过了Java或者C语言的开发者而言,Objective-C可能稍显陌生。不过由于iOS开发的火爆,Objective-C也开始变得越来越流行。

图2.1所示是2013年5月最新公布的编程排行榜,Objective-C一路飙升,如今已超越了C++,占据了第3的位置,其未来前景可见一斑。以上内容带领读者了解了一下Objective-C语言的过去和现在。下面将会具体地学习Objective-C语言的语法要素,它的语法可能在初学者眼里稍显“怪异”,不过相信读者很快就会喜欢上它!图2.1 TIOBE世界编程语言排行榜

注意:TIOBE开发语言排行榜每月更新一次,其结果来自于世界范围内的资深开发工程师和第三方供应商,它能从某一方面上反映出某个编程语言的热门程度,但不能代表一门编程语言的好坏。2.1.1 类定义

创建Objective-C类时会生成两个文件:一个.h的头文件,一个.m的源文件。类声明关键字为@interface,类实现关键字为@implementation。下面代码为类定义的类声明接口:

对于初学者,下面针对每一个关键字都进行了解释。

❑ 第1行定义了一个类,类名为MyClass。

❑ MyClass:NSObject表示继承自NSObject, NSObject是大多数Objective-C类的继承的根类,它没有父类。

❑ NSString *result表示MyClass的一个成员变量,类型是NSString *。NSString表示字符串类型。

❑ 第5行声明MyClass的一个成员函数,函数前面的“-”号表示这个函数需要创建类实体变量才能调用。同理,函数前还有“+”标记,表示这是一个类函数,无需创建类实体变量,用类名调用就可以了。setResult:为函数名,:(NSString *)_result表示传递一个参数,参数类型为NSString*。

❑ @end表示声明结束。2.1.2 类实现

头文件里定义了成员变量和方法,然后就需要在类实现文件中补充程序的工作代码。以下是MyClass.m的内容:

@implementation为类实现关键字。在setResult的实现里把参数传递给成员变量。类结束不要忘记添加@end。

关于初始化类实体变量,并调用成员函数的代码如下所示。

Objective-C调用函数的方式为[类函数],如果需要传递参数,就在:号的后面将参数传递进去。@"Hello World"是Objective-C中的标准字符串格式,如果不加@表示的是C语言中的字符串,两者使用需要转化。

alloc表示申请一块内存,init是初始化类实体变量。这两个函数都是MyClass父类NSObject的成员函数。2.1.3 多参数的方法

很多时候,一个方法需要携带多个参数。看下面这个C语言的函数,它拥有3个入参,函数的大意是输入学生的姓名、性别和学校,返回年龄:

在Objective-C中,一个方法的名字可以被拆分成几段。以刚才那个方法来说,声明看上去是这样的:

这样的优势在于函数变得很生动,函数的作用以及参数的含义一目了然。调用起来也很简单,代码如下:

读者可能担心函数名称太长,调用时太麻烦。这点大可不必担心,敲打代码时,Xcode会快速检测并匹配函数,这一切都是同步的,可以说Xcode都为我们想到了。在运行环境中,该方法的名字实际上是ageQueryedByName:Sex:School:。2.1.4 属性

Objective-C 2.0以后,有了“属性”这个新特性,可以使用“属性”来提高代码编写的速度和直观性,声明形式为@property(修饰)类型名字。笔者还是通过上面的代码来举例,稍作修改如下:

来看这行代码:

该行代码表示对变量result进行一次引用计数。引用计数的原理在后面的小节“内存管理”中详细介绍。

修饰属性使用的关键字还有很多,分为以下3类。

❑ 赋值方法:assign表示直接赋值,这是默认的操作。copy表示复制创建一个新的对象。

❑ 读写权限:readwrite表示可读写,readonly是表示只读。

❑ 原子操作:nonatomic是非原子修饰符,atomic是原子修饰符,这是默认的。这类修饰符主要用多线程运行防止同时操作资源。nonatomic运行效率更高,一般都采用这种方式。

现在修改MyClass.m的代码:

@synthesize result;表示创建该属性的访问器,这样就可以直接访问result变量。没有添加属性前,如要访问result变量需要采用如下方式:

[[MyClass alloc] init];表示初始化一个MyClass类变量;操作result变量只能采用调用成员函数的方式。但是添加了属性后,操作方式如下所示:

可以通过类实体变量直接访问成员变量。

注意:所有的变量声明、方法声明、属性声明都需要用半角分号

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载