Objective-C语法之Objective-C语言和iOS系统(简介,语法,系统结构)

网友投稿 274 2022-08-24

Objective-C语法之Objective-C语言和iOS系统(简介,语法,系统结构)

简介

Objective-C,是扩充C的面向对象编程语言。它主要使用于Mac OS Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是在C的基础上,加入面向对象特性扩充而成的编程语言。目前,Objective-C主要应用于Mac OS X和iOS这两个NeXTSTEP的衍生系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在任何gcc支持的平台上进行编译,因为gcc原生支持Objective-C。

Objective-C的历史1980年代初,布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C,它以一种叫做SmallTalk-80的语言为基础。Objective-C建立在C语言之上,意味着它是在C语言基础上添加了扩展而创造出来的能够创建和操作对象的一门新的程序设计语言。对Objective-C最主要的描述是他1986年出版的《Object-oriented Programming, An Evolutionary Approach》。1988年,NeXT Software公司获得了Objective-C语言的授权,并开发出了Objective-C的语言库和一个名为NEXTSTEP的开发环境。1992年,自由软件基金会的GNU开发环境增加了对Objective-C的支持。1994年,NeXT Computer公司和升阳微系统(Sun Microsystem)联合发布了一个针对NEXTSTEP系统的标准典范,名为OPENSTEP。OPENSTEP在自由软件基金会的实现名称为GNUStep。1996年12月20日,苹果公司宣布收购NeXT Software公司,NEXTSTEP/OPENSTEP环境成为苹果操作系统下一个主要发行版本OS X的基础。这个开发环境的该版本被苹果公司称为Cocoa。

IOS的历史

苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS

Objective-C的语法

Hello World

咱们看看Hello  World实例

新版本的Xcode 4.3.1下的helloworld例子可以这么写:

[cpp]  ​​view plain​​​ ​​​copy​​

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

那 autoreleasepool这个是做什么用的呢?

简单的说,每次事件处理时候开始的时候,ios会为我们自动生成一个autorelesepool,结束的时候释放掉。对于每一个Runloop, 系统会隐式创建一个Autorelease pool,这样所有的release pool会构成一个象CallStack一样的一个栈式结构,在每一个Runloop结束时,当前栈顶的Autorelease pool会被销毁,这样这个pool里的每个Object会被release。那什么是一个Runloop呢? 一个UI事件,Timer call, delegate call, 都会是一个新的Runloop。Autorelease是保证一个method安全的,对于method中的函数调用也适用

旧版本的hellowold如下

[cpp]  ​​view plain​​​ ​​​copy​​

#importint main(int argc, char *argv[]){NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];"Hello World!");[pool drain];return 0;}

IOS的系统结构

系统结构,从底层到最顶层分为四层,如下图:

1、核心操作系统层, Core OS

2、核心服务层 Core Services

3、媒体层 Media

4、Cocoa Touch层

参考:​​http://zh.wikipedia.org/wiki/Objective-C​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:iPhone开发经典语录集锦
下一篇:Objective-C语法之字符串NSString
相关文章

 发表评论

暂时没有评论,来抢沙发吧~