《从零开始学iOS7开发系列3-我的地盘我做主-Cha13》.pdf

《从零开始学iOS7开发系列3-我的地盘我做主-Cha13》.pdf

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

从零开始学iOS7开发系列3-我的地盘我做主-Cha13 原⽂及⽰例代码来⾃raywenderlich store中的iOS Apprentice 系列3教程,经过翻译和改编。 版权归原作者所有,本系列教程仅供学习参考使⽤,感兴趣的朋友建议购买原英⽂教程教程(The iOS Apprentice Second Edition: Learn iPhone and iPad Programming via Tutorials!)。 购买链接: /store 最近的天⽓好冷,这就是传说中的倒春寒吧?⼤家还是要多注意⾝体,⼩⼼感冒哦~ 欢迎继续我们的学习。 让我们把理论知识进⾏到底吧。 ⾸先来了解下Overriding methods (⽅法覆盖/重写)的概念。 为什么会有这样⼀个概念的存在呢?这个其实和我们上⼀课提到的类继承机制有关。当我们通过类 继承的⽅式创建⼀个⾃定义类时,这个⾃定义的类也会继承来⾃⽗类的⽅法。 ⽐如我们创建了⼀个新类MyClass: @interface MyClass : NSObject @end 那么在后⾯的代码中就可以这样来分配并初始化⼀个MyClass类的实例对象: MyClass *myObject = [[MyClass alloc] init]; 即便我们的MyClass类中没有显⽰声明⼀个alloc⽅法或⼀个init⽅法,上⾯的代码仍然是有效的。因 为MyClass类继承⾃NSObject类,⽽NSObject类具有这样的⽅法,这就⾏了。也就是说MyClass类 会免费拥有NSObject类的所有⽅法。这充分说明了作为⼀个可以继承⼤量财富的富⼆代是多么的令 ⼈羡慕。⼟豪,我们做朋友吧! 继承来的财富不⼀定让⼟豪满意,⽐如祖上虽然有庞⼤的产业,但主要收⼊来源是东莞的五星级酒 店和娱乐场所。作为⼀个有良知尊重妇⼥的富⼆代,你可能会考虑弃暗投明,升级产业转⽽搞⽐较 有节操的⼿机游戏。⽐如可以考虑设计⼀个疯狂美少⼥游戏,充分利⽤旗下的美⼥资源,把她们的 形象卡通化。玩家把美少⼥架在树上,可以攻击那些猪⼀样的猿类。弹指⼀挥间,强撸灰⻜烟灭。 因此,我们的MyClass类可能想要拥有⾃⼰的init⽅法: @implementation MyClass - (id)init { if ((self = [super init])) { // do stuff } return self; } @end 从此之后,如果后⾯在代码中调⽤[[MyClass alloc]init] ,就会触发这个新的init⽅法。 当然,在这个过程中我们还是需要调⽤NSObject版本的init⽅法,这样⽗类才可以初始化⾃⼰,这也 是为神⻢在上⾯的⾃定义init⽅法的if条件语句中有[super init]。 想想也是,如果没有⽗辈的启动资⾦,你也没机会搞神⻢产业升级。 当然,我们⽆需在interface部分单独声明init⽅法: @interface MyClass : NSObject - (id)init; // not needed @end 当然,如果你这么做也没有坏处,不过会让代码显得多余,因为在NSObject类的interface中已经声 明了init⽅法。既然MyClass类继承⾃NSObject类,那么它⾃然就知道⾃⼰拥有⼀个init⽅法。 当然,如果我们使⽤其它名称创建了⼀个初始化⽅法,那么就需要在interface部分添加⼀个⽅法声 明,否则其它类就⽆法使⽤它。 @interface MyClass: NSObject -(id)initWithText:(NSString *)text; @end ⽅法可以⽤于⽗类和其⼦类之间的通讯,这样⼦类就可以在特定的情况下执⾏特定的⾏为。这也是 诸如viewDidLoad和viewWillAppear:⽅法的⺫的。这些⽅法在UIViewController中声明和实现,⽽在 我们⾃⼰创建的⾃定义视图控制器⼦类中则可以override (覆盖/重写)。 例如,当⽤户界⾯将要呈现时,UIViewController类会调⽤[self viewW

文档评论(0)

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

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

1亿VIP精品文档

相关文档