OC语言----foundation其他常用的类型


foundation其他常用的类型

首先:

NSArray   不可变数组

array数组的创建:

NSArray *array1 = [NSArray arrayWithObject:@"jack"];


nil是数组元素结束的标志

NSArray *array2 = [NSArray arrayWithObjects:@"jack",@"rose",nil];


快速创建一个array数组

NSArray *array3 =@[@"jack",@"rose",@"4324324"];

NSMutableArray 可变数组

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];
    // 添加元素
    [array addObject:[[Person alloc] init]];
    
    [array addObject:@"jack"];
    
    // 删除元素
    //[array removeAllObjects];
    // 删除指定的对象
    // [array removeObject:@"jack"];
    [array removeObjectAtIndex:0];
    
    // 错误写法
    // [array addObject:nil];
    
    //输出数组
    NSLog(@"%@", array);
    //输出数组个数
    NSLog(@"%ld", array.count);

遍历数组:

 Person *p = [[Person alloc] init];  // 常用的方法
    
    NSArray *array = @[p, @"rose", @"jack"];
    
    //    for (int i = 0; i<array.count; i++)
    //    {
    //        NSLog(@"%@", array[i]);
    //    }

遍历数组另一种方式:

int i = 0;
    //    for (id obj in array)
    //    {
    //        // 找出obj元素在数组中的位置
    //        NSUInteger i = [array indexOfObject:obj];
    //
    //        NSLog(@"%ld - %@", i, obj);
    //        //i++;
    //
    //        if (i==1)// 判断i==1,就结束遍历,退出
    //        {
    //            break;
    //        }
    //    }

使用block方法来实现遍历

[array enumerateObjectsUsingBlock: 
     // 每遍历到一个元素,就会调用一次block
     // 并且当前元素和索引位置当做参数传给block
     ^(id obj, NSUInteger idx, BOOL *stop)
     {
         NSLog(@"%ld - %@", idx, obj);
         
         
         if (idx == 0)
         {
             // 停止遍历
             *stop = YES;
         }
         
     }];


OC数组不能存放nil

OC数组只能存放OC对象、不能存放非OC对象类型,比如intstructenum

    

这个array永远是空数组

NSArray *array = [NSArray array];


 foundation字典

// 字典存放的都是键值对,key --value   索引--文字内容

    NSDictionary *dict = [NSDictionary dictionaryWithObject:@"sun" forKey:@"name"];<span style="font-family: Arial, Helvetica, sans-serif;">id obj = [d    ict objectForKey:@"name"];</span><pre name="code" class="objc" style="font-size: 18px;">    NSLog(@"%@",obj)

 

//返回的是:键值对的个数
   NSLog(@"%ld", dict.count);
   NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];



 // 字典不允许有相同的key,但允许有相同的value(Object)
    // 字典的无序的
    NSDictionary *dict = @{
    @"name" : @"jack",
    @"name2" : @"jack",
    @"name3" : @"孙寅",
    @"qq" : @"309394652"};
另一种字典方式:先定义一个字典对象,在通过字典方法往里面输入键值对

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
   // 添加键值对
[dict setObject:@"jack" forKey:@"name"];
[dict setObject:@"山西" forKey:@"address"];
[dict setObject:@"rose" forKey:@"name"];

  

// 移除键值对
// [dict removeObjectForKey:<#(id)#>]; 
NSString *str = dict[@"name"];
    
//NSLog(@"%@", str);
    
NSLog(@"%@", dict);

上面的方法比较繁琐,oc中也有快速创建词典的方法:

NSMutableDictionary *dict = @{@"name" : @"sun",@“address” : @“山西”};

id obj = dict[@"name"];

NSLog(@"%@", obj); //输出结果为sun




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值