• 黑马程序员___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;
    
         }];

     

  • 相关阅读:
    创建vue项目的时候报错,spawn yarn ENOENT
    理解比特币(4)——实现原理
    比特币(3)——比特币的其他优势
    比特币(2)——最大优势是价值存储
    如何在K8S中优雅的使用私有镜像库 (Docker版)
    [Go] godoc 打开本地文档, windows 同样适用
    [FAQ] Golang error strings should not be capitalized or end with punctuation
    [Go] gorm 错误处理 与 链式/Finisher方法
    [Go] golang 替换组件包 更新 go.mod, go.sum 的方式
    [FAQ] golang-migrate/migrate error: migration failed in line 0: (details: Error 1065: Query was empty)
  • 原文地址:https://www.cnblogs.com/jia694600474/p/4012330.html
Copyright © 2020-2023  润新知