- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教程详细:
????? 技术:Objective-C??? 难度:初学者?? ? 完成时间:20-30分钟
? 在今天的教程里,我们将会学习到类别,以及如何使用类别来扩展Cocoa-Touch类的功能。这是我们学习Objective-C系列的最后一章了,就让我们也会回顾一下目前所学到的知识,还有,探讨一下日后开发Objective-C或iphone应用程序的一些技巧。
类别
????? 那么,什么是类别呢?大量的Objective-C系列教程会忽略掉类别,这是一个非常有用的语言功能。通过消除不必要的子类,类别有助于保持代码的清洁。从我们已经了解到的,如果我们有一个NSString对象,然后要添加一些函数去做一些事情,例如添加一个可以把字符串中’a’替换成’4’,这样我们可以继承NSString并且添加自己的方法。当我们创建了Car类,我们也可以看到这子类。之前我过叫大家在这教程的最后,创建这样的一个Car子类,所以你可以在基类添加函数了,但在某些情况下,类别提供一个很好的方法去为一个类添加额外的方法:
?? 类别允许我们为一存在的类添加方法,这样,我们程序中所有类的实例可以获得这样的功能了。例如,我们有100个NSString对象在应用程序里,但你想拥有一个自定义子类,所以每个NSString就得拥有一个额外的方法了(例如reverseString)。有了类别,我们可以轻松地把方法加进类别里,并且所有的实例会允许被使用新方法。语法是和子类的很不相同的,并且类别不会允许你去使用实例变量。然而,方法重写是允许的,但这要慎用,不到万不得已之时勿用。
语法
?? 类别的语法形式和类相似,他们中也分别有一个接口和一个实现。接口看起来是这样的:
1: @interface ClassNameHere (category)
2:
3: // method declaration(s)
4:
5: @end
6:
7: The implementation looks like this;
8:
9: @implementation ClassNameHere (category)
10:
11: // method implementation(s)
12:
13: @end
举例
?? 很简单对吧?好吧,让我们看看一个例子吧。我们将要创建一个用来实现string反转的方法。虽然这方法没多大实际用处,但用来做什么并不是重点。你应该已经知道接口的形式了,但这已经存在的了:
1: @interface NSString (reverse)
2:
3: -(NSString *) reverseString;
4:
5: @end
那怎样创建实现呢?
1: @implementation NSString (reverse)
2:
3: -(NSString *)reverseString {
4:
5: }
6:
7: @end
? 接下来,我们将需要添加一些代码来让string反转。由于我们将为NSString类添加方法,我们得自我引用字符串了。现在,为了反转字符串,我们需要一个新的临时字符串对象。我们会用一个循环去反转这字符串,每次寻找一个字符添加到反转字符对象上。代码如下:
1: int length = [self length];
2: NSMutableString *reversedString;
3:
4: reversedString = [[NSMutableString alloc] initWithCapacity: length];
5:
6: while (length 0) {
7: [reversedString appendString:[NSString stringWithFormat:@%C, [self characterAtIndex:--length]]];
8: }
9:
10: return [reversedString autorelease];
? 这种方法是相当简单的,我们通过每次循环反转字符串中的字符。我们追加使用stringWithFormat和字符标识符。当我们调用这方法,不仅返回长度整数,并且从字符串删除它,循环
您可能关注的文档
- 孕妇注意补充的维生素.doc
- 孕妇补钙应该吃什么好.docx
- 孕妇选择补充维生素.doc
- 孕妇食谱(初期1到3个月).doc
- 孕妇饮食大全().doc
- 孕妇饮食美味食谱.doc
- 孕妈咪日常生活方式.doc
- 孕期必看台湾广和月子餐食谱,小S月子餐餐单及详细做法.doc
- 孕妈咪必备如何选择孕妇装.doc
- 字符,字节和编码.doc
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
文档评论(0)