您的位置:首页 > 其它

NSArray

2015-06-10 16:22 232 查看
//
//  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]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: