zoukankan      html  css  js  c++  java
  • 黑马程序员_ Objective-c 之Foundation笔记(二)

    NSArray

    NSArray的创建

    NSArray *array = [NSArray arrayWithObject:@“jack”]   创建单个元素

    NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil] 创建多个元素

    快速创建一个NSArray对象

     NSArray *array4 = @[@"jack", @"rose", @"4324324"]

    [array.count ]   计算数组元素的个数

    array3[0]

    [array3 objectAtIndex:1]  访问数组的元素

    注意:OC数组不能存放nil值,nil是数组的结束标记

         OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等

      NSArray *array = [NSArray array] 这个数组永远是空数组

    遍历数组

    方法一、

    复制代码
    Person *p = [[Person alloc] init];
    
        
    
        NSArray *array = @[p, @"rose", @"jack"];
    
        
    
           for (int i = 0; i<array.count; i++)
    
           {
    
                NSLog(@"%@", array[i]);
    
           }
    复制代码

    方法二、

        

    复制代码
     id obj代表着数组中的每一个元素
    
        int i = 0;
    
            for (id obj in array)
    
            {
    
                // 找出obj元素在数组中的位置
    
                NSUInteger i = [array indexOfObject:obj];
    
        
    
                NSLog(@"%ld - %@", i, obj);
    
                //i++;
    
        
    
                if (i==1)
    
                {
    
                    break;
    
                }
    
            }
    复制代码

    方法三、

       

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

    NSMutableArray

    创建数组

     NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil]

     添加元素

        [array addObject:[[Person alloc] init]];

        

        [array addObject:@"jack"];

     删除元素

        [array removeAllObjects]

     删除指定的对象

        [array removeObject:@"jack"];

        [array removeObjectAtIndex:0];

    NSSet

    创建

     NSSet *s = [NSSet set]

        

     NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",nil]

    随机拿出一个元素

     NSString *str =  [s2 anyObject];

        

     NSLog(@"%@", str);

    NSMutableSet

     NSMutableSet *s = [NSMutableSet set];

        

     添加元素

      [s addObject:@"hack"];

        

     删除元素

     [s removeObject:<#(id)#>];

    NSSet和NSArray的对比

     1 共同点

      1) 都是集合,都能存放多个OC对象

      2)只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)

      3)本身都不可变,都有一个可变的子类

     

     2 不同点

      NSArray有顺序,NSSet没有顺序

     

    NSDictionary

    字典都是由索引(key)和文字内容组成的(value)

    创建不可变字典

    方式一、

    NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];

        

    方式二、    

    NSArray *keys = @[@"name", @"address"];

    NSArray *objects = @[@"jack", @"北京"];

        

    NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

        

    方式三、    

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:

    @"jack", @"name",

    @"北京", @"address",

    @"32423434", @"qq", nil];

        

    快速创建一个字典    

    NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};

    取出字典某个对象

    id obj = [dict objectForKey:@"name"]

    快速取出字典某个对象

    id obj = dict[@"name"]

    可变字典 NSMutableDictionary

    NSMutableDictionary *dict = [NSMutableDictionary dictionary]

    添加键值对

    [dict setObject:@"jack" forKey:@"name"];

    移除键值对

    [dict removeObjectForKey:@“name”];

    遍历字典

    方法一、

          

    复制代码
      NSArray *keys = [dict allKeys];
    
        
    
            for (int i = 0; i<dict.count; i++)
    
            {
    
                NSString *key = keys[i];
    
                NSString *object = dict[key];
    
        
    
        
    
                NSLog(@"%@ = %@", key, object);
    
            }
    
        
    复制代码

    方法二、

       

    复制代码
     [dict enumerateKeysAndObjectsUsingBlock:
    
         ^(id key, id obj, BOOL *stop) {
    
             NSLog(@"%@ - %@", key, obj);
    
             
    
             // *stop = YES;
    
         }];
    复制代码
  • 相关阅读:
    求职简历撰写要点和模板分享
    find命令
    MD5Init-MD5Update-MD5Final
    Linux find命令详解
    Linux进程KILL不掉的原因
    Linux操作系统的内存使用方法详细解析
    Lsof命令详解
    为什么ps中CPU占用率会有超出%100的现象?
    第12课 经典问题解析一
    第11课 新型的类型转换
  • 原文地址:https://www.cnblogs.com/yaochao/p/4033680.html
Copyright © 2011-2022 走看看