Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型

Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型

 

目录

  • 概述——对Foundation框架集合类的理解
  • NSArray
  • NSDictionary
  • NSSet
  • NSArray、NSDictionary和NSSet的Mutable类型
  • Foundation框架中集合类的使用详见苹果官方文档
  • 集合类的实用操作

深层遍历

深层复制

  • 待研究

 

概述——对Foundation框架集合类的理解

 

NSArray

创建

NSArray *array = [NSArray arrayWithObjects:@"one",@"two",nil];

NSArray *array2 = @[@"one",@"two"];

访问NSArray中的元素(通过index)

array[index];

[array objectAtIndex:index];

返回NSArray的长度

[array count];

遍历NSArray

for(id obj in array){

  NSLog(@"%@",obj);

}

for(int i=0;i<[array count];i++){

  NSLog(@"%@",array[i]);

}

 

NSDictionary

创建

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"key1",object1,@"key2",object2,nil];

NSDictionary *dict2 = @{@"key1":object1,@"key2":object2};

注意:key和value都可以为类对象,不一定都是字符串;

访问NSDictionary中的元素(通过key值)

[dict objectForKey:key];

dict[key];

返回NSDictionary的长度

[dict count];

遍历NSDictionary(key和value都遍历)

for(id key in [dict allKeys]){

  NSLog(@"%@",key);

  NSLog(@"%@",dict[key]);

}

 

NSSet

创建

NSSet *set = [NSSet setWithObjects:@"1",@"2",nil];

返回NSSet的长度

[set count];

遍历NSSet

for(id obj in set){

  NSLog(@"%@",obj);

}

 

NSArray、NSDictionary和NSSet的Mutable类型

允许在创建对象之后对对象进行更改(插入和删除)操作

 

Foundation框架中集合类的使用详见苹果官方文档

 

集合类的实用操作

深层遍历

实现思路:增加对所包含的集合对象的处理,在此只对NSArray,NSDictionary,NSSet这三种集合类进行处理,如果有新需求可以增加新处理

+ (void)traverseDictionary:(NSDictionary *)dict{

for (id object in [dict allValues]) {

        if ([object isKindOfClass:[NSArray class]]) {

            [TraverseCollection traverseArray:object];

        }

        else if ([object isKindOfClass:[NSDictionary class]]){

            [TraverseCollection traverseDictionary:object];

        } 

        else if ([object isKindOfClass:[NSSet class]]){

            [TraverseCollection traverseSet:object];

        }

        else{

            NSLog(@"%@",object);

        }

    }

}

深层复制

与深层遍历类似

 

待研究

 

原文地址:https://www.cnblogs.com/IOS-Developer/p/4191923.html