oc的增 删 改 总结

来源:互联网 发布:矩阵的秩怎么计算 编辑:程序博客网 时间:2024/06/06 22:57

1.不可变字符串  
   NSString * str = @"Hello World!";

  NSString * str2  = [[NSString alloc] initWithString: str];

  NSString * str3 = [[NSString alloc] initWithUTF8String:"HEllo World!"];

  NSString * str4 = [[NSString alloc] initWithFormat:@"hello %c %d %f", 'A', 3, 3.14]; // 字符串的万能方法


  还有类方法[NSString stringWithString: str];
      [NSString stringWithUTF8String:"hello"];
      [NSString stringWithFormat:@"hello %d", 5];


str.length / [str length] 来确定字符串长度

 转换大小写:
   uppercaseString        // 全大写
   lowercaseString        // 全小写
   capitalizedString    // 单词首字母大写
 比较大小:
    isEqualToString
    compare
    hasPrefix:        // 以什么开头
    hasSuffix:        // 以什么结尾

 查找:
    rangeOfString           查找字符串中子串的范围, range.location 从那里开始  range.length 开始后的长度

 截取子串:
    subStringToIndex     //从头开始截取  (不包括自己)
    subStringFromIndex  //从该处开始到结尾  (包括自己)
    subStringWithRange  //通过范围来截取子串,从location开始(包含自己)往后截取length个


2. 可变字符串
  NSMutableString : NSString
  NSString 的方法 NSMutableString 也能用
  传参的时候可以传NSString * 也可以传 NSMutableString *

NSMutableString 是NSString的子类 ,所以NSString的方法NSMutableString都可以用

  setString  设置或替换当前字符串内容  

  增:
      追加: appendString      appendFormat
      插入: insertString:  atIndex:
  删:
   deleteCharactersInRange:NSMakeRange(location , length);

  改:
   replaceCharactersInRange:  withString:
  查:
   rangeOfString

3.不可变数组

  数组的元素是任意的对象, 不仅仅局限于字符串, 数组中只装了对象的地址. 相当于指针数组.
  和C中的数组不同, 元素可以是不同类型的对象
  initWithObjects


  直接遍历:
   NSLog(@"%@", arrayName); //可以直接输出 但可能会出现乱码的情况需要进行遍历
  枚举法遍历:  
   用当前数组创建一个枚举器(NSEnumerator *)enumerator = [array objectEnumerator], 然后调用枚举器的nextObject方法, 返回数组中每个元素的地址.
  快速枚举法:
   for (id obj in arrayName){}    
   专门用于枚举数组的for, 和平常的for不是一个. 每次循环得到一个数组元素的地址.
  循环遍历:    
   objectAtIndex:    // 返回数组中一个元素的地址    
   indexOfObject:    // 某元素的下标    
      count        // 元素个数

  [array containsObject: ]    // array中是否包含某个元素    

  componentsJoinedByString:    // 将数组中的元素组合起来
  componentsSeparatedByString:    // 分割字符串
  componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString: ]    // 使用字符分割字符串

4.可变数组
  初始化:
    initWithArray
    [arrayName  ObjectsAtIndexes]
    setArray

  枚举法遍历的时候不允许修改其中的元素及个数和顺序, 快速枚举法也不可以, 但是逆序枚举的时候reverseObjectEnumerator可以修改

  增加:
    addObject
    insertObject:  atIndex:        

  删除:
    removeObjectAtIndex
    removeObject

  exchange   replace

 

5.字典
  NSMutableDictionary: NSDictionary
  initWithObjectsAndKeys:
  // 字典中的成员称为键值对, @"One"和@"1"组成一个键值对, @"One"称为值(Value), @"1"称为键(Key);并且字典是无序的
  // 键和值都是任意对象, 不过, 键往往使用字符串, 字典里装的只是键和值的地址, 值可以重复, 但是键不能重复, 为

同一个key设置value时, 将会替换掉原始的value


  ObjectForKey        // 可以迅速通过key来找到一个值(value)
  count            // 键值对的个数

注意:字典内Key唯一,如果使用setObject:forKey:往数组内添加一条键值对时,当该key已经存在,那么覆盖掉以前对应的value,当key不存在时,那么相当于插入了一条键值。

        

        //setObject:forKey 是为字典添加键值,或者修改某key对应的value的方法。key需要是遵循NSCoding协议的对象

        //setValue:forKey 是KVC的方法,key值必须是NSString


    //以另一个字典内的所有键值,来添加到现有字典中

//        [firstMutableDictionary addEntriesFromDictionary:firstDictionary];

        

        //用另一个字典内的所有键值,替换掉现有的所有键值

//        [firstMutableDictionary setDictionary:firstDictionary];

        

 //根据key值删除字典内的object

        [firstMutableDictionary removeObjectForKey:@"discount"];

        

        //删除所有键值对(清空字典)

        [firstMutableDictionary removeAllObjects];


        

        //遍历字典内所有value

        for (NSString *str in [firstMutableDictionary allValues]) {

            NSLog(@"%@", str);

        }

 排序:
   

        //设置排序的规则key部分写要排序的属性

        NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];

        //定义第二排序规则,如果年龄一样,根据学号来排序

        NSSortDescriptor *sort2 = [NSSortDescriptor sortDescriptorWithKey:@"number" ascending:YES];

        NSArray *array = [mulArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sort, sort2, nil]];

6.集合NSSet

 集合的特点:元素唯一(不能有相同的元素); 集合内元素无序

获取集合内的元素个数

        NSLog(@"%ld", firstSet.count);

        

       //获取集合内的所有元素

        NSArray *array = [firstSet allObjects];

        

        for (NSString *str in array) {

           NSLog(@"%@", str);

        }

        

   返回集合内的某个元素

   NSLog(@"%@", [firstSet anyObject]);

       

  判断集合内是否包含某个元素

 [firstSet containsObject:@"211"]



9 0
原创粉丝点击