网站大量收购独家精品文档,联系QQ:2885784924

iphone开发初探.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iphone开发初探

iphone开发初探 收藏 Author:孙东风 本文是作者从一无所知到入门的知识学习过程,并结合自己在嵌入式开发的经验所写的技术总结文章,以供后来者学习。 苹果公司的iphone平台采用Object-c做为native language的开发,Object-c的内核是C语言的,并基于C语言实现OOP的一些特性。Object-c是对C语言的扩展,这和C++的前身Better-c有很大的相似之处,Object-c的新版本里实现了和Java类似的垃圾回收机制,但基于iphone平台的资源限制,iphone平台并不支持垃圾回收机制。 学习一门语言,自然要从词法分析也即编译前端和语法分析也即编译后端来理解它。 在编译前端,Object-c给我们带来了很多不一样的特性。下面我们重点看看Object-c与众不同的词法定义。 1.Object-c使用.m后缀作为代码文件的扩展名,当然你也可以使用.c和.cpp后缀名,但它们会分别调用C compiler和C++ compiler。Xcode作为iphone开发的集成环境,使用GCC作为编译器。 2.Object-c使用#import代替#include来导入声明文件。并且编译器保证#import不会被重复导入。 3.尽管Object-c也支持printf()进行控制台打印文本信息,但是更推荐使用NSLog(),并且它会自动在文本后面添加\n。 4.Object-c曾经也叫做NextStep,为了更好的体现其OOP的特性,NextStep里所有的对象都继承自NSObject,这点和Java的单根继承很类似。所以其Applicatio Kit里的类库前缀基本都是NS*。而其Cocoa Foundation里的类库前缀基本都为NSCF*。 5.Object-c提供了BOOL类型,但这个BOOL类型和C++里的并不一样,在C++里一切非0值的东西都为true,而为0值的为false。但是Object-c里1为true并被宏定义为YES,0为false并被宏定义为NO。 所以,如果读者写下面的代码,肯定是错误的: BOOL areIntsDifferent_faulty(int thing1,int thing2) { return (thing1-thing2); } if(areIntsDifferent_faulty(23,5) == YES) { } 因为areIntsDifferent_faulty方法返回的是两个整数的差,如果这个差不为1,那么永远不会为YES。 6.Object-c里仍然继承了C语言的传统,其primitive type只有int、char、float、BOOL并用它们表达一切。 7.Object-c采用@interface来进行接口的声明,并采用@implementation对声明进行实现。 8.Object-c在Foundation Kit里提供了很多基础类库,常用的如NSString、NSRange、NSLog、NSPoint、NSRect等,这点和Symbian里提供的绘制接口很类似。 9.Object-c也支持Collection类库,并充分借鉴了Java Collection的设计,比如NSArray、NSMutableArray等。这些类库提供基本的插入、删除、排序操作,需要注意的是NSMutableArray才提供上述操作,而NSArray为不可修改的,这有点类似于Java的String和StringBuffer,而iphone里也提供了NSString和NSMutableString! 10.Object-c里采用跌代器的概念进行元素的遍历,NSEnumerator的典型用法如下: NSEnumerator* enumerator; enumerator = [array objectEnumerator]; id thingie; while(thingie = [enumerator nextObject]) { NSLog(@I found %@,thingie); } 在编译后端,Object-c同样实现了OOP编程的特性:继承、多态、封装。下面逐一介绍。 1.继承 典型的继承用法如下: @interface Circle : NSObject { ShapeColor fillColor; ShapeRect bounds; } -(void) setFillColor: (ShapeColor)fillColor; -(void) setBounds: (ShapeRect)bounds; -(void) draw; @end //Circle @interfac

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档