zoukankan      html  css  js  c++  java
  • Foundation——集合类

    一、 NSArray只能翻oc对象,不能放基本数据类型,为不可变数组。

        1、不可变数组,你在定义它的时候,没有存放任何OC对象,那么它永远是空数组。

    NSArray *array = [NSArray array];

       2、数组最后的nil是数组的结束标记,并且oc数组不能存放空指针

     NSArray *array = [NSArray arrayWithObjects:@“2”, @“2”,nil];
     NSArray *array = @[“”,””,””];//C语言数组用的是大括

      3、取得数组里面对象有两种方法

    [array objectAtIndex:i];//面相对象方法
     array[i];//编译器特性

    4、快速遍历数组

     1  for(id obj in Array){
     2  //缺点不知道第几次,他没循环一次,自动会复值给obj
     3  NSLog(“%@“, obj);
     4  //有一个方法是找出数组元素在数组中的位置
     5  NSUInteger i = [array indexOfObject:obj];
     6  }
     7 [array enumerateObjectsUseingBlock:^(id obj, NSUInteger idx,BOOL *stop){
     8  //obj就是每次取出来的对象
     9 //如果想停止,则调用*stop = YES;stop是指针,*stop才是变量值。
    10  }]
    11 NSSoredDescriptor sortDescriptroWithKey:对象的成员变量 asceding:升序降序。
    12 array sortedArrayUsingDescritptor:array];

    二、判断一个路径是文件还是文件夹
         1、单例模式,整个文件系统,公用一个文件管理

    NSFileManger *mgr = [NSFileManager deaultManger];

         2、判断文件的扩展名,如果是.m或.h文件才计算

    NSStting *str =[path pathExtension];

         3、判读一个路径里面试文件还是文件夹

    1 BOOL dir = NO;
    2  //程序执行完后,就会改变bool的值,返回值是传的路径是否存在
    3  BOOL ifExist =[mgr filesExistAtPath:path isDirectory:*dir];
    4 如果是陌路dir==YES,然后取得文件夹里的所有文件
    5  NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil];

     三、NSMutableArray
        

    addObject//添加对象方法
    removeAllObject//删除所有对象
    removeObject:Object//删除指定对象
    removeObjectAtIndex:Int//删除指定位置的对象
    // 快速创建可变数组,不能@[];返回的是不可变数组。

     四、 NSSet NSMutableSet

    setWithObject://类方法添加对象构造一个不可变set
    anyObject//随即访问,没有顺序
    addObject
    removeObject
    set和array的共同点都是集合,都有一个可变的子类,都职能存放oc对象。

    五、NSDictionary NSMutableDictionary
         1、字典也是无序的,当设置重复key值,则覆盖

     NSDictionary *dic = [NSDictionary dictionatyWithObject:  forkey:];
    NSDictionary *dic = [NSDictionary dictionaryWithObjects:NSArray forkeys:NSArray];
    NSDictionary *dic = @{key : object,};
    dic[@“”];
     [dic objectForKey:@“”]

         2、遍历字典,两中方法allKeys取出所有的key值装在一个数组中,之后循环取值。

    //遍历
     enumerateKeysAndObjectsUseingBlock:^(id, id obj, BOOL *stop)

         3、数组不能直接复制,需要使用函数拷贝,如果使用指针数组可以直接赋值

                   /*temp=p[i];
    
                    p[i]=p[j];
    
                    p[j]=temp;*/
    
                    strcpy(temp, p[i]);
    
                    strcpy(p[i], p[j]);
    
                    strcpy(p[j], temp)

       

  • 相关阅读:
    重建索引报错-python数据分析
    机器学习实战1-2.1 KNN改进约会网站的配对效果 datingTestSet2.txt 下载方法
    机器学习实战1-1 KNN电影分类遇到的问题
    权限掩码umask详解
    spark配置(7)--on yarn配置
    spark配置(6)-独立应用程序
    spark配置(5)-独立应用程序
    spark配置(4)-----Spark Streaming
    spark配置(3)
    spark配置(2)
  • 原文地址:https://www.cnblogs.com/gaizuojia/p/4357670.html
Copyright © 2011-2022 走看看