《苹果开发,OC学习类、初始化、内存管理.docxVIP

《苹果开发,OC学习类、初始化、内存管理.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《苹果开发,OC学习类、初始化、内存管理

2009-12-07 17:04 186人阅读 评论(3) 收藏举报?? ? ?C语言的基本基本没有 ,就开始学习OC难免回有些浅薄,写给0基础的人看,主要是给我自己一回忆的地方,希望大虾们不要见笑。?? ? ?对象的声明格式:NSObject* anObject; ? (类名*对象名)--OC语言中NS(NeXTSTEP )为现任苹果CEO,之前NeXTSTEP老板的乔布斯团队的用户界面工具包,并一直沿用至今。由于OC中所有对象的操作都是由指针来完成,所以我们可以 见到代码中大部分都是指针。?? ? ?对对象的操作称为方法,以[receiver ?message];(消息)的形式来完成。所以消息就是方法名的抽象。方法可以带多个参数,出于清晰方面考虑,多参数的一般将参数名分为不同不分,如: [receiver message:argument1 name:argument2]; ??? ? ?如果有返回值的,需要指定返回值的类型 :type ?Returns;?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Returns=[Class ?message];?? ? ?OC中所有的类都是继承来的,而他们的根类就是NSObject,这是一个抽象类(Abstract classes),他本身不能被实例化,单独使用也没有任何意义,完全是为了被继承。所有的子类有其父类的所有属性和方法。?? ? ?类的定义分为两个部分,接口部分(interface)和实现部分(implementation),接口部分声明了类中的属性和方法名,实现部分声明 了属性,和方法的的定义。由于接口部分有属性的声明,所以在实现部分,我们一般省略对属性的声明。类的声明格式如下:?? @interface ClassName:ItsSuperclass{ ? ? ? ? ? ? ? ? ?@implementation ? ?ClassName:ItsSuperclass{?? ? ?instance variable declarations; ? ? ? ? ? ? ? ? ? ? ? ??instance variable declarations; //下划线部分可以省略} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}method declarations; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?method definitions;?@end ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @end?方法的定义格式:一般以大括号为定义体部分,要声明方法的返回值类型,如果不写则默认为id类型。方法前以“+”“-”号为开始,“+”代表该方法为类方法,对类对象进行操作。“-”为实例方法,对实例变量进行操作。?O-C中有两个关键字可以在方法的实现中代表执行方法的对象:?self:执行方法的对象本身?super:调用对象的父类中的实现来执行方法??self除了可以用作向自身请求方法以外,还可以作为一?个代表对象本身的隐藏变量来使用?super只能出现在消息表达式中,代表了对被复写的方法的原始实现的请求方式???? ? ?O-C中对象的创建需要两个部分,第一:内存分类(Allocation)。第二:对对象进行初始化(initialization)。而我们一般将这两步在同一个语句中实现。?? ? ? ? ? id anObject=[[Rectangle alloc]init];如果初始化方法有可能返回nil,则还需要做检查处理:??? ? ? ? ? ?id anObject = [[SomeClass alloc] init];??? ? ? ? ? ?if ( anObject )??? ? ? ? ? ? ? ?[anObject someOtherMessage];??? ? ? ? ? else??? ? ? ? ??...?分配内存并初始化以后,他在内存中的所有位置都被置0。如果这样的结果不是我们想要的,我们需要对对象赋一定的值才能继续进行时。我们就需要自定义初始化。自定义初始化方法时所有方法中要求最多的。??? ?1。自定义初始化方法的命名一般应以“init”开头??? ?2。初始化方法的返回值类型必须是id??? ?3。在自定义初始化方法的实现中,必须有对本类的指定初始化方法的引用??? ?4。在实现中引用其它初始化方法时,注意把返回值

文档评论(0)

sf197103 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档