您的位置:首页 > 移动开发 > Objective-C

我学习Object-C中的收获总结(五)(六)

2015-10-24 15:11 459 查看
(五)

类的继承能够大大简化代码,公共的方法与实例变量写在父类里,子类只写自己特有的。并且OC里没有多继承,只能单继承。多级继承之后,执行方法时是现在本类中找,没有就在父类中找,逐级向上。

子类重写父类的方法了又想调用父类的这个方法,用super调用。例:[super 父类方法]

遍历构造器:它是一个加号方法,封装了alloc与init方法,更简洁了

.h文件:

{

NSString *_name;

}

+ (instancetype)personWithName:(NSString *)name;

- (instancetype)initWithName:(NSString *)name;

.m文件:

+ (instancetype)personWithName:(NSString *)name

{

Person *person = [[Personalloc]
initWithName:name];

return person;

}

- (instancetype)initWithName:(NSString *)name

{

_name = name;

returnself;

}

main:// 便利构造器创建对象

Person *person = [PersonpersonWithName:@"递归"];

(六)

Foundation框架:包括了字符串,集合,日期,时间等基础类。

1.NSString与NSMutableString,不可变字符串与可变字符串

NSString创建出来的对象,内容与长度都不能变化。NSMutableString则可以任意变化。

其实NSMutableString是NSString的子类,继承了所有的方法。

经常用的方法是拼接,替换,比较,切割,分段等。

不可变字符串:

拼接:

NSString *string1 = [[NSString
alloc]
init];

string1 = @"张";

NSString *string2 = [[NSString
alloc] init];

string2 = @"三";

NSString *string3 = [string1
stringByAppendingString:string2];
切割:

NSString *string = [content
substringFromIndex:4];// 获得content字符串从下标为4的位置以后,所有的内容

NSString *string = [content
substringToIndex:4];// 获得content字符串从0下标开始到第四下标开始的所有内容

NSString *string = [content
substringWithRange:NSMakeRange(2,
3)];// 获得content字符串从第2个下标开始的一共长度为3的子串

替换:

NSString *string = [message
stringByReplacingOccurrencesOfString:@"h"
withString:@"pa"];// 遍历每个字符,用后面的替换前面的

查询:

NSString *string =
@"6af6ds4xcv566l,6.jhl4fg4f6jhdf4ghd";

NSScanner *scanner = [NSScanner
scannerWithString:string];// 查询的功能是找出数字

while (![scanner isAtEnd] && ++scanner.scanLocation)// 遍历找出数字

{

int result;

if ([scanner
scanInt:&result]) {

NSLog(@"%d", result);

}

}
分段:

NSString *string =
@"xiaohao,lewis,mouxiangyang";

NSArray *array = [string
componentsSeparatedByString:@","];// 在遇到逗号时就开始分段

不可变字符串:

拼接:

NSMutableString *mutableString = [[NSMutableString
alloc]
init];

[mutableString appendString:@"张"];

[mutableString appendString:@"三"];
替换:

[mutableMessage replaceOccurrencesOfString:@":"
withString:@"#"
options:0
range:NSMakeRange(0, [mutableMessage
length])];// 后面的字符替换前面的字符,range后标明的是从第一个字符到最后一个开始替换

可变字符串还支持增删改查等动态的操作。不可变字符串得有一个返回值,而可变字符串没有,直接修改原来的字符串。

2.数组(可变与不可变)

可变数组NSMutableArray继承于不可变数组NSArray,可变数组增删改的功能都是针对自己,产生新的数组,而不可变数组则每次变化都要有一个新的数组接受数据,原来的数组不变。

而且OC的数组里的元素类型随意,不如C那么死板。元素在数组中的索引值从0开始。

遍历时也可以像C的数组一样利用索引值用for循环遍历,后面也会有别的遍历方法。

NSNumber是将基本数据类型封装为对象,用来为基本数据类型和数据对象之间转换服务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: