Foundation框架—数组 NSArray -NSMutableArray

2024-03-24 21:08

本文主要是介绍Foundation框架—数组 NSArray -NSMutableArray,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Foundation 框架初体验
_______________ NSArray 不可变数组 _______________

//不可变数组 OC的数组可以存储不同类型的对象 只能存储对象

//顺序的存储结构 可以遍历 每个元素占的内存空间是连续的

//注意点: 实例化的时候必须让对象进行赋值 因为它是不可变数组

//实例化 用逗号隔开
NSArray * array =[[NSArray alloc]initWithObjects:@”1”, @”2”, @”3”, @”4”, nil];

//数组长度
int count = (int)array.count;

//判断数组中是否有某个对象
BOOL isHave =[array containsObject:@”2”];
if(isHave){
NSLog(@”存在”);
}
else{
NSLog(@”不存在”);
}

//取出数组中 第一个元素
NSString *str = [array firstObject];
//取得数组中 最后一个元素
NSString *str2 = [array lastObject];
//取出数组中 下标为3的元素
NSString *str3 = [array objectAtIndex:3]; //0 ,1 ,2 ,3 取值为4
//打印元素对应的下标(如果元素不存在 则打印 -1 )
int index =(int)[array indexOfObject:@”3”]; //0,1,2(数值为3)下标为2

//数组的遍历(遍历:查看数组中的每一个元素)

//遍历的常用的两种方法:1.基本的for循环通过下标逐一取出查看 2. for in 快速枚举

//方法 1. for循环
for(int i = 0; i < array.count ;i++)
{
//取出数组中 下标为i的字符串 从0开始
NSString *str1 =[array objectAtIndex:i];

}

//方法 2. 快速枚举 for in (需要让数组中的元素类型保持一致,不一致会崩溃)
//在数组中 查找所有的字符串 每循环一次 找到一个 有序的(按照下标逐渐递增的,按照数组的首个元素,到末尾元素排布)

for(NSString *str in array) {

NSLog(@"str = %@",str);

}

_______________ NSMutableArray 可变数组 _______________

// 实例化的时候不需要让对象进行赋值 因为它是可变数组

NSMutableArray *array = [[NSMutableArray alloc]init];

//添加元素
[array addObject:p1];
//添加数组(会自动加入数组中的元素)
[array addObjectsFromArray:personArray];

//删除元素
//删除数组内 所有的元素
[array removeAllObjects];
//删除数组内 指定的元素
[array removeObject:p1];
//删除数组内 最后一个元素
[array removeLastObject];
//删除指定下标的元素
[array removeObjectAtIndex:2];//删除下标为2 第三个元素
//交换数组内元素的位置
[ array exchangeObjectAtIndex:0 withObjectAtIndex:1]; //将第一个和第二个元素交换

这篇关于Foundation框架—数组 NSArray -NSMutableArray的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/842803

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte