不可变数组NSArray和可变数组NSMutableArray区别和用法
来源:互联网 发布:jsp 获取mac地址 编辑:程序博客网 时间:2024/06/02 16:43
不可变数组NSArray和可变数组NSMutableArray区别和用法
下面是相关的代码实现:
#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]);
}
0 0
- 不可变数组NSArray和可变数组NSMutableArray区别和用法
- 不可变数组NSArray和可变数组NSMutableArray
- ios可变数组NSMutableArray和不可变数组NSArray的区别
- 不可变数组NSArray和可变数组
- OC 中的数组方法(不可变数组NSArray 和 可变数组 NSMutableArray)
- 不可变数组(NSArray)与可变数组(NSMutableArray)
- 不可变数组NSArray与可变数组NSMutableArray
- 数组的常用方法(不可变:NSArray, 可变:NSMutableArray)
- iOS开发学习第十七课——NSArray(不可变数组) 和 NSMutableArray(不可变数组)
- 固定数组NSArray 和 可变NSMutableArray
- NSArray(不可变数组)、NSMutableArray(可变数组)、数组排序、NSNumber(多态:数值和对象互转)、NSValue(将结构体转换成对象)
- OC 数组中的方法 (不可变数组NSArry 和可变数组 NSMutableArray)
- 数组:可变数组和不可变数组
- 数组:NSArray 和 NSMutableArray
- Objective-C(十一、不可变数组NSArray,可变数组NSMutableArray)——iOS开发基础
- OC语言 集合>>不可变数组(NSArray) 与 可变数组(NSMutableArray)
- 数组NSArray和可变数组NSMutableArray的基础知识
- Objective-C语法-数组NSArray和可变数组NSMutableArray
- [leetcode]43 Remove Duplicates from Sorted Array
- oracle权限关于with admin option和with grant option的用法
- CUDA编程深入浅出,案列讲解
- WebRTC 初览(2) getUserMedia 介绍一
- 数据库触发器
- 不可变数组NSArray和可变数组NSMutableArray区别和用法
- windows mysql 自动备份的几种方法
- 启动eclipse失败,提示“Java was started but returned exit code=13”
- 黑马程序员-OC-block和protocol
- ajax传输返回数据
- Linux复习(八)常用命令大全
- 传值为集合的sql 语句,返回list
- java程序
- 博弈学习(三) HDU 1538 A Puzzle for Pirates(经典的海盗分金推理)