- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解析Objective-C中的间接思想
【摘 要】移动互联网快速发展的今天,智能手机终端的开发也变成了热门行业。IOS和Android作为目前主流的智能手机操作系统,基于IOS和Android的软件开发也在市场上掀起了一股开发热潮。Objective-C作为IOS开发推荐使用的语言,它的核心思想之一就是间接。许多面向对象的语言,核心思想都是相通的,希望通过基于Objective-C间接思想的探讨,可以提高程序开发的高效和易维护性。
【关键词】智能终端;IOS;Objective-C;间接
1 引言
随着移动智能终端的不断普及、移动应用的日益丰富,整个移动互联网产业正进入了应用为王、内容为王的时代。各式各样的手机应用、手机游戏软件如雨后春笋般,迅速进入我们的生活,改变我们的生活。目前智能手机操作系统主要包括:Windows Mobile、Symbian、IOS、Android。IOS即苹果手机的操作系统,IOS简单的操作、优雅的设计、流畅的使用等特点,吸引了大量用户,也引来了很多开发者的追捧。
IOS的开发,首先需要先安装Mac OS X,Xcode[1]。Mac OS X是苹果电脑的操作系统相当于Windows,Xcode是IOS应用的开发环境相当于VC++ 6.0,其中包含了iPhone的模拟器、Cocoa框架。图1所示为Xcode 4的开发环境,它包含了iPhone的模拟器、编译器、调试器和图像化设计的Interface Build工具。
图1.Xcode开发环境
Cocoa是Mac OS X上的快速应用程序开发(RAD, Rapid Application Development)框架,一个高度面向对象的(Object Oriented)开发框架,相当于VC++6.0中的MFC,封装和集成许多基本的类。Objective-C被推荐为Cocoa程序的开发语言。Objective-C简而言之就是拥有面向对象层的C,它实际上是C的扩展。由于整个Cocoa Framework都是由Objective-C/C实现的,掌握Objective-C对IOS的开发者来说是至关重要的。
2 从C/C++快速了解Objective-C
Objective-C其实和C很类似,只不过拥有一些附加特性,它支持面向对象的编程,可以定义类,支持继承、协议(相当于接口)。通过下面的代码,我们会更直观的了解Objective-C的特点:
Main函数:
#import Foundation/Foundation.h
int main (int argc, const char * argv[ ]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog(@Hello, World!);
[pool drain];
return 0;
}
与其他语言一样,Objective-C的程序入口也是main;也需要包含库中的基本函数和数据类型,但这里使用#import。
Objective-C对类的声明:
#import BaseClass.h
@interface MyClass : BaseClass
{
int mValue;
}
- (int) getValue;
- (void) setValue:
- (int) inValue;
- (BOOL) isValid;
+ (MyClass*) getInstance;
@end
与C++对比,可以得出以下的特点:
(1)#import 取代了 #include,当头文件嵌套包含的时候,它的作用就发挥出来了。#import可保证头文件只包含一次,而不论此命令实际上再哪个文件出现了多少次。
(2)类的声明的关键字是@interface,用来通知编译器:这里是一个类。@end通知类结束。
(3)继承的时候没有限定符,继承都是 public 的。没有构造函数和析构函数,成员变量和函数没有限定符,成员变量缺省是 private 的,而函数是 public 的。
但C++具备很多Objective-C所没有的特性:多重继承、命名空间、运算符重载、模板、类变量、抽象类等。不过Objective-C提供了有关的技术来代替这些特性[2]。
3 间接的思想
在编程行业有句老话,大意是:“只要多添加一个间接层,计算机科学中就没有解决不了的问题”。间接这个词的含义很简单——不在代码中直接使用某个值,而是使用指向该值的指针。比如:我们不记得某人的电话号码,但是我们可以通过查电话薄来知道。这种方式是一种间接的形式。或者:我们本来要去图书馆还书,但有同学刚好去,你可以请同学帮你还,你可以
文档评论(0)