Object-c------NSArray的简单介绍

main.m

//
// main.m
// 03-NSArray
//
// Created by apple on 13-8-12.
// Copyright (c) 2013年 itcast. All rights reserved.
//

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


/* NSArray :不可变数组 NSMutableArray : 可变数组 */

int main()
{
    // @[] 只创建不可变数组NSArray
    /* 错误写法 NSMutableArray *array = @[@"jack", @"rose"]; [array addObject:@"jim"]; */


    //NSArray *array = @[@"jack", @"rose"];

    return 0;
}

// 可变数组的基本使用
void use3()
{
    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);
}

// 遍历数组
void use2()
{
    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;
         }

     }];


    // void ^(myblock)(id, NSUInteger, BOOL *) = ^(id obj, NSUInteger idx, BOOL *stop)
    // {
    // NSLog(@"%ld - %@", idx, obj);
    //
    //
    // if (idx == 0)
    // {
    // // 停止遍历
    // *stop = YES;
    // }
    // };
    //
    // for (int i = 0; i<array.count; i++)
    // {
    // // 用来标记是否需要停止遍历
    // BOOL isStop = NO;
    //
    // // 取出元素
    // id obj = array[i];
    // 
    // myblock(obj, i, &isStop);
    // 
    // 
    // if (isStop)
    // {
    // break;
    // }
    // }

}

void use()
{
    /* int a = 5; int ages[10] = {1, 90, 89, 17}; Person *p = [[Person alloc] init]; Person *persons[5] = {p, [[Person alloc] init]}; */

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

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


    /* 1.NSArray的创建 */
    NSArray *array2 = [NSArray arrayWithObject:@"jack"];

    // nil是数组元素结束的标记
    NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
    // [array2 count];

    //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];

    // 快速创建一个NSArray对象
    NSArray *array4 = @[@"jack", @"rose", @"4324324"];


    /* 2.NSArray的元素个数 */
    NSLog(@"%ld", array3.count);


    /* 3.NSArray中元素的访问 */
    NSLog(@"%@", [array3 objectAtIndex:1]);

    //array3[1];
    NSLog(@"%@", array3[0]);
}

你可能感兴趣的:(Object-c------NSArray的简单介绍)