Foundation框架2
NSMutableString
- NSMutableString和NSString的区别
- NSString是可变的,里面的文字内容是不能进行修改的
- NSMutableString是可变的,里面的文字内容可以随时更改
- NSMutableString能使用NSString的所有方法
NSMutableString的常用方法
- - (void)appendString:(NSString *)aString;
- 拼接aString到最后面
- - (void)appendFormat:(NSString *)form,...;
- 拼接一段格式化字符串到最后面
- - (void)deleteCharactersInRange:(NSRange)range;
- 删除range范围内的字符串
- - (void)replaceCharactersInRange:(NSRange)range withString: (NSString *)aString;
- 使用aString替换range范围内的字符串
NSArray
- 什么是NSArray
- NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组
- C语言中数组的弊端
- int array[4] = {10,89,27,76}
- 只能存放一种类型的数据
- 不能很方便的动态添加数组元素
- 不能很方便的动态删除数组元素
- int array[4] = {10,89,27,76}
- NSArray的使用注意
- 只能存放任意OC对象,并且是有顺序的
- 不能存储非OC对象,比如int\float\double\char\enum\struct等
- 它是可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素
NSArray的创建
- NSArray常见的创建方式有
+ (instancetype)array; + (instancetype)arrayWithObject:(id)anObject; + (instancetype)arrayWithObjects:(id)firstObj, ...; + (instancetype)arrayWithArray:(NSArray *)array; + (id)arrayWithContentsOfFile:(NSString *)path; + (id)arrayWithContentsOfURL:(NSURL *)url;
- 可以将一个NSArray保存到文件中
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;
NSArray的检索
- - (NSUInteger)count;
- 获取集合元素个数
- - (id)objectAtIndex:(NSUIteger)index;
- 获得index位置的元素
- - (BOOL)containsObject:(id)anObject;
- 是否包含某一个元素
- - (id)lastObject;
- 返回最后一个元素
- - (id)firstObject;
- 返回最后一个元素
- - (NSUInteger)indexOfObject:(id)anObject;
- 查找anObject元素在数组中的位置(如果找不到,返回-1)
- - (NSUInteger)indexOfObject:(id)anObject inRange: (NSRange) range;
- 在range范围内查找anObject元素在数组中的位置
NSArray的简写
- 自从2012年开始,Xcode的编译器多了很多自动生成代码的功能,使得OC代码更加精简
- 数组的创建
- 之前
- [NSArray arrayWithObjects:@"Jack",@"Rose",@"Jim",nil];
- 现在
- @[@"Jack",@"Rose",@"Jim"];
- 之前
- 数组元素的访问
- 之前
- [array objectAtIndex:0];
- 现在
- array[0];
- 之前
NSArray给所有元素发消息
- - (void)makeObjectsPerformSelctor:(SEL)aSelector;
- - (void)makeObjectsPerformSelctor:(SEL)aSelector withObject:(id)argument;
- 让集合里面的所有元素都执行aSelector这个方法
NSArray遍历元素
- 遍历,就是将NSArray里面的所有元素一个一个取出来查看
- 常见的遍历方式有
- 普通遍历
- for (int i = 0;i<array.count; i++) {}
- 快速遍历
- for (id obj in array) {}
- Block遍历
- [array enumerateObjectsUsingBlock:^(id obj, NSUInteger iddx, BOOL *stop) { }];
- 普通遍历
NSArray于NSString
- - (NSString *)componentsJoinedByString:(NSString *)separator;
- 这是NSArray的方法,用separator作拼接符将数组元素拼接成一个字符串
- - (NSArray *)componentsSeparatedByString:(NSString *)separator;
- 这是NSString的方法,将字符串用separator作为分隔符切割成数组元素
NSMutableArray
- 什么是NSMutableArray
- NSMutableArray是NSArray的子类
- NSArray是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素
- NSMutableArray是可变的,随时可以往里面添加\更改\删除元素
NSMutableArray添加元素
- - (void)addObject:(id)object;
- 添加一个元素
- - (void)addObjectsFromArray:(id)anObject atIndex: (NSUInteger)index;
- 在index位置插入一个元素