• 【Foundation Frame】NSArray


    NSArray
    代表元素有序、可重复的一个集合,集合中每个元素都有对应的顺序索引。

    创建NSArray的常见方法
    1、array:创建一个不包含任何元素的空NSARRAY
    2、arrayWithObject/initWithObject:创建只包含指定元素的NSArray
    3、arrayWithObjects/initWithObjects:创建只包含一个或多个元素的NSArray
    4、arrayWithContentsOfFile:读取文件内容来创建NSArray

    (以下程序列举了常用的NSArray方法)
    //
    //  main.m
    //  Array
    //
    //  Created by mac on 14-12-3.
    //  Copyright (c) 2014 mac. All rights reserved.
    //

    #import <Foundation/Foundation.h>
    #import
    "People.h"

    //静态创建数组的方法
    void staticCreatArray()
    {
       
    NSArray * array1 = [NSArray arrayWithObject:@"NSArray"];
       
    NSLog(@"Way 1: %@",array1);
       
       
    NSArray * array2 = [NSArray arrayWithObjects:@"NSArray1",@"NSArray2",@"NSArray3", nil];
       
    NSLog(@"Way 2: %@",array2);
       
       
    NSArray * array3 = [NSArray arrayWithArray:array2];
       
    NSLog(@"Way 3: %@",array3);
      
        [array1
    release];
        [array2
    release];
        [array3
    release];

    }

    //动态创建数组的方法
    void dynamicCreatArray()
    {
       
    NSArray * array1 = [[NSArray alloc]initWithObjects:@"1,2,3,4,5",@"HELLO", nil];
       
    NSLog(@"Way 1: %@",array1);
       
       
    NSArray * array2 = [[NSArray alloc]initWithArray:array1];
       
    NSLog(@"Way 2: %@",array2);
       
    }

    //查询集合元素在NSArray中的序列
    void searchArray()
    {
       
    NSArray * array1 = [NSArray arrayWithObject:@"NSArray"];
       
    NSArray * array2 = [NSArray arrayWithObjects:@"NSArray1",@"NSArray2",@"NSArray3", nil];
       
    NSArray * array3 = [[NSArray alloc]initWithObjects:@"1,2,3,4,5",@"HELLO",@"HELLO", nil];
       
       
    NSLog(@"%lu",[array1 count]);
       
    NSLog(@"%hhd",[array3 containsObject:@"HELLO"]);
       
    NSLog(@"%@",[array2 lastObject]);
       
    NSLog(@"%@",[array2 objectAtIndex:1]);
       
    NSLog(@"%lu",[array2 indexOfObject:@"NSArray1"]);
       
    NSRange range = NSMakeRange(0, 2);
       
    NSLog(@"%lu",[array2 indexOfObject:@"NSArray2" inRange:range]);
       
        [array3
    release];
       
    }

    //对数组进行比较
    void compareArray()
    {
       
    NSArray * array1 = [NSArray arrayWithObject:@"NSArray"];
       
    NSArray * array11 = [array1 copy];
       
    NSArray * array2 = [NSArray arrayWithObjects:@"NSArray1",@"NSArray2",@"NSArray3", nil];
       
    NSArray * array3 = [[NSArray alloc]initWithObjects:@"1,2,3,4,5",@"HELLO",@"HELLO",@"NSArray1", nil];
       
       
    NSLog(@"%hhd",[array1 isEqualToArray:array11]);
       
    NSLog(@"%@",[array2 firstObjectCommonWithArray:array3]);
        [array3
    release];
    }

    //遍历数组
    void ergodicArray()
    {
      
    NSArray * array2 = [NSArray arrayWithObjects:@"NSArray1",@"NSArray2",@"NSArray3", nil];
       
    //C语言方式
       
    for (int i = 0; i<[array2 count]; i++)
        {
           
    NSLog(@"%@",[array2 objectAtIndex:i]);
        }
       
    //快速遍历
       
    for (id obj in array2)
        {
           
    NSLog(@"    %@",obj);
           
        }
       
    //Block方法遍历
        [array2
    enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop)
        {
           
    if (idx<1)
            {
                * stop =
    YES ;
            }
           
           
    NSLog(@"%lu,%@",idx,obj);
        }];
       
       
    //迭代器方法遍历
       
    NSEnumerator * enumerator =[array2 objectEnumerator];
       
    id obj ;
       
    while (obj= [enumerator nextObject]) {
           
    NSLog(@"%@",obj);
        }
    }

    //其他方法
    void otherArray()
    {
       
    NSArray * array1 = [NSArray arrayWithObject:@"NSArray"];
       
    NSArray * array2 = [NSArray arrayWithObjects:@"NSArray1",@"NSArray2",@"NSArray3", nil];
       
       
    //快速遍历array
       
    for (id obj in array2)
        {
           
    NSLog(@"%@",obj);
           
        }
       
        array2 = [array2
    arrayByAddingObject:@"NSArray4"];
       
    for (id obj in array2)
        {
           
    NSLog(@"  %@",obj);
           
        }
       
        array2 = [array2
    arrayByAddingObjectsFromArray:array1];
       
    for (id obj in array2)
        {
           
    NSLog(@"    %@",obj);
           
        }
       
       
    NSArray *pathArray = [NSArray arrayWithObjects:@"here", @"be", @"dragons", nil];
       
    NSLog(@"%@",pathArray);
       
    NSLog(@"%@",[pathArray componentsJoinedByString:@"->"]);
       
       
    NSRange range = NSMakeRange(0, 3);
       
    NSLog(@"%@",[array2 subarrayWithRange:range]);
       
    }

    //排序
    void sortArray()
    {
       
    NSArray * array2 = [NSArray arrayWithObjects:@"NSArray2",@"NSArray1",@"NSArray3", nil];
       
    NSLog(@"Before Sort:%@",[array2 componentsJoinedByString:@" "]);
       
    //选择排序
       
    NSArray * selectSortArray = [array2 sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
       
    NSLog(@"After Sort :%@",[selectSortArray componentsJoinedByString:@" "]);
       
       
    NSArray * array3 = [NSArray arrayWithObjects:@"NSArray2",@"NSArray1",@"NSArray3",@"NSArray5",@"NSArray4", nil];
       
    NSLog(@"Before Sort:%@",[array3 componentsJoinedByString:@" "]);
       
       
    }

    int main(int argc, const char * argv[]) {
       
    @autoreleasepool {
          
    // insert code here...
          
    // NSLog(@"Hello, World!");
          
    // staticCreatArray();
          
    //  dynamicCreatArray();
          
    // searchArray();
          
    //  compareArray();
          
    // ergodicArray();
           //  otherArray();
           // sortArray();
           
        }
       
    return 0;
    }



  • 相关阅读:
    工具进阶:如何利用 MAT 找到问题发生的根本原因
    性能优化步骤
    搞定内存泄漏
    jvm配置示例
    vue的transition相同元素通过v-if,以及绑定key的区别
    安装nvm之node版本管理器
    在ts中定义变量类型的dva使用方法
    dva的全部用法
    react父子组件传值之二,ref传值(父组件调用子组件的值和方法) useRef+useImperativeHandle(hook)
    react父子组件传值方式一之props方法
  • 原文地址:https://www.cnblogs.com/shujucn/p/7481461.html
Copyright © 2020-2023  润新知