- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 《不锈钢y型截止阀》.doc
- 《不锈钢圆弧齿轮油泵》.pdf
- 《不锈钢氨气减压阀》.doc
- 《不锈钢氨用截止阀》.doc
- 《不锈钢污水污物潜水泵》.pdf
- 《不锈钢潜水式排污泵》.pdf
- 《不锈钢调节球阀》.pdf
- 《不锈钢防爆齿轮油泵》.pdf
- 《不锈钢齿轮油泵》.pdf
- 《与罗伯特艾伦对话 创造多种收入流的秘密》.pdf
- 《中国通史》文字稿第12集春秋争霸.docx
- java教程--类与对象-讲义课件(演讲稿).ppt
- Vue应用程序开发-(1).pptx
- 东北师大版社劳动实践与评价指导手册一年级上册主题二活动一寻找五彩的树叶课时课件.pptx
- 外研版英语四年级上册 Module 4 Unit 2 How much is it单元教学设计.docx
- 外研版英语四年级上册Module 4 单元整体教学设计.docx
- 6《上课之前》课件 鄂科技版 心理健康教育一年级.pptx
- 《1~5的认识》说课课件(共25张PPT)人教版一年级上册数学.pptx
- 六《解决问题(1)》说课课件 人教版 三年级上册数学.pptx
- 七《解决问题》说课课件 人教版 二年级上册数学.pptx
文档评论(0)