Oc集合

在Foundation中,数组是 有序 的对象的集合,用来存储 对象 的有序列表
NSArray中不能存放C语言类型
可以使用NSNumber来转换数据类型
     eg:[NSNumber  numberWithInt: int ];  //整型转换
NSArray
创建:
    -(id) initWithObjects:(id)firstObject,…….//实例方法
       eg: NSArray *array = [ [NSArray alloc ] initWithObjects:@“ ”,….. nil ];
   +(id)arrayWithObjects:(id) firstObject, ….;  //类方法
      eg:NSArray *array = [NSArray arrayWithObjects: @“ “, …. nil ];

获取数组元素个数
  -(NSUInteger)count;
  eg: int count = [array count];

获取数组元素
   -(id) objectAtIndex : (NSUInteger) index;
 eg: NSString *string = [数组 objectAtIndes:__索引值__]; 

注意:数组越界,数组会对加入其中的对象自动把引用计数加一,不能在数组中存放nil

NSMutableArray 类
初始化:
               -(id) initWithCapacity: (NSUInteger) numItems;
               -(id) arrayWithCapacity: (NSUInteger) numItems;
增加对象:
     -(void)addObject: (id) anObject; //在数组的末尾加入一个对象
删除对象:
     -(void) removeAllObjects:   //所有
     -(void) removeLastObject;  //最后一个
     -(void) removeObjectAtIndex: (NSUInteger) index;   //索引
替换:
    -(void) replaceObjectAtIndex: (NSUInteger)index withObject:   (id)anObject;  
   -(void) insertObject:(id)anObject atIndex:(NSUInteger) index;

数组的排序:
          不可变数组 : -(NSArray *)sortedArrayUsingDescriptors:(NSArray *) sortDescriptors;  //参与比较的对象
                            -(NSArray *)sortedArrayUsingComparator:(NSArray *) sortDescriptors; //代码快
                     -(NSArray *)sortedArrayUsingSelector:(NSArray *) sortDescriptors; //自定义
  可变: -(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
                 -(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
                 -(void) sortUsingDescriptors:(NSArray *)sortDescriptors;
       eg:   
    定义一个排序描述符的对象
        NSSortDescriptor *sd1 = [ NSSortDescriptor sortDescriptorWithKey : @"name" ascending : YES                              ];  定义一个数组,然后用来盛放排序条件         NSArray *array = [ NSArray arrayWithObject :sd1];  进行排序         [ mArray sortUsingDescriptors :array];
获取枚举器:
       -(NSEnumerator *) objectEnumerator;
eg: NSEnumerator * enumerator = [array objectEnumerator ];  
  //数组个数以被记录,后面不能操作增,删

  使用枚举器遍历数组 通过 while 循环来遍历
   eg: id obj;
          while (obj = [enumerator nextObject ]){
               NSLog(@“%@“, obj);
          }
快速枚举:
      for (id obj in array){
        NSLog(@“%@“, obj);
     }      / / id类型的变量obj存放的是数组array里的元素

字典:NSDictionary    
          字典采用的健查询的优化存储方式
创建
     -(id) dictionaryWithObjectsAndKeys: (id)obj,……;//参数是成对的,顺序是对象和健,最后加一个nil,表示结束,键值不能重复
取值:
   -(id) objectForKey :(id)aKey;

NSMutableDictionary:
创建:
     +(id) dictionaryWithCapacity :(NSUInteger)num;
添加:
   -(void) setObject : (id) obj   forKey :(id) aKey; //如原来就有的健,会覆盖
删除:
  -(void) removeObjectForKey :(id) aKey;
遍历:
 -(NSArray *) allKeys : //得到字典的所有Key值

NSSet类:
      不能存放相同的对象,数据是无序的
 创建:
     -(id) initWithObjects: (id) firstObject, ……;
     +(id) setWithObjects :(id) firstObject,…….;
获取个数
      -(NSUInteger) count ;
获取元素:
     -(NSArray *) allObjects ;
     -(id) anyObject ;
判断方法:
     -(BOOL) isEqualToSet : (NSSet *) otherSet;
     -(BOOL) member: (id) obj;   //判断本集合中是否包含对象obj

NSMutabelSet类:
创建:
     -(id) initWithCapacity :(NSUInteger) numItem;
    +(id) setWithCapacity :(NSUInteger) numItem;
添加:
     -(void) addObject: (id) object;
删除:
    -(void) removeAllObject;
   -(void) removeObject: (id) object;

数值数据: NSNumber
创建:

+(NSNumber*) numberWithChar : (char) value;   
+(NSNumber*) numberWithInt : (int) value;
+(NSNumber*) numberWithFloat : (float) value;
+(NSNumber*) numberWithBool : (BOOL) value;
eg:   NSNumber* number = [NSNumber  numberWithInt: 3];
        [array addObject: number];
        [dict setObject: number  forKey: @ ”my” ];
获取值:
  -(char) charValue ;
  - (int) intValue ;
  -(float) floatValue ;
  -(BOOL) boolValue ;
  (NSString *) stringValue ;
eg:NSNumber *number = [NSNumber numberWithInt:3];
        int number = [number intValue];

NSValue:针对结构体来使用的
创建:
  +(NSValue *) valueWithBytes :(const void *)value objCType :(const char *)type;
eg: NSRect rect = NSRect(5,5,100,100);
      NSValue *value = [valueWithBytes:&rect objCType:@encode(NSRect)];
      [array addObject: value];
获取值:
    -(void)getValue:(void *) value;
eg:NSValue *value = [array objectAtIndex:0];
     [NSRect rect1];
    [value getValue:&rect1];

NSNull;封装nil空值
 +(NSNull *)null;
eg:[array addObject:[NSNull null]];
    id nullValue = [array objectAtIndex:0];
    if(nullValue == [NSNull null]){
    //判断是否为空
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值