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}
      • 只能存放一种类型的数据
      • 不能很方便的动态添加数组元素
      • 不能很方便的动态删除数组元素
  • NSArray的使用注意
    • 只能存放任意OC对象,并且是有顺序的
    • 不能存储非OC对象,比如intfloatdoublecharenumstruct等
    • 它是可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素

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位置插入一个元素
原文地址:https://www.cnblogs.com/saurik/p/4834414.html