OC中数组的使用方法
#import <Foundation/Foundation.h>
int main(int argc, const char *
argv[])
{
// 创建数组
NSArray *arr1 = nil;
// NSLog(@"%p", arr1);
NSObject *obj = [NSObject new];
arr1 = [NSArray arrayWithObjects:@"One", @"Two", @"Three",
obj, nil];//结束标识,相当于C语言的“\0”
// NSLog(@"%p", arr1);
NSLog(@"arr1: %@",
arr1);
// 推荐以下的新语法
NSString *str = @"Hello";
NSArray *arr2 = @[@"zhangsan", @"lisi", @"wangwu", @"zhaoliu" ,@"tianqi",
str];//这样的方法自己主动在后面加入了nil
NSLog(@"arr2: %@",
arr2);
// 訪问数组成员 objectAtIndex
// NSObject *tmpObj = [arr1 objectAtIndex:3];
id tmpObj = [arr1 objectAtIndex:3];
NSLog(@"tmpObj: %@",
tmpObj);
// 推荐使用以下的新语法
tmpObj = arr2[2];
NSLog(@"arr2[2]: %@",
tmpObj);
// 可变数组
NSMutableArray *firstArr = [NSMutableArray arrayWithCapacity:30];
// 加入
[firstArr addObject:@"One"];
[firstArr addObject:@"Two"];
[firstArr addObject:@"Three"];
[firstArr addObject:@"Four"];
[firstArr addObject:@"Five"];
NSLog(@"The Mutable Array: %@",
firstArr);
NSMutableArray *secArr = [NSMutableArray arrayWithArray:arr2];
NSLog(@"secArr: %@",
secArr);
// 删除
[secArr removeObject:@"tianqi"];
NSLog(@"==secArr: %@",
secArr);
[secArr removeObjectAtIndex:2];
NSLog(@"===secArr: %@",
secArr);
// 插入
[secArr insertObject:@"wangwu" atIndex:2];//id 是对象
index 是位置
NSLog(@"after insert: %@",
secArr);
// 替换
NSObject *someObj = [NSObject new];
[secArr replaceObjectAtIndex:4 withObject:someObj];
NSLog(@"after replace: %@",
secArr);
// C语言遍历数组
NSUInteger number = [secArr count];
for (int i
= 0; i < number; i++) {
id obj = secArr[i];
NSLog(@"%@",
obj);
}
// 通过枚举器来遍历数组(正着遍历)
NSEnumerator *enum1 = [secArr objectEnumerator];
id obj1;
NSLog(@"*************************");
while (obj1 = [enum1 nextObject])
{
NSLog(@"obj1: %@",
obj1);
}
while (obj1 = [enum2 nextObject])
{
NSLog(@"reverse: %@",
obj1);
}
NSLog(@"============================");
// 高速枚举
for (id obj in secArr)
{
NSLog(@"Fast Enumeration: %@",
obj);
}
return 0;
}
OC中数组的使用方法的更多相关文章
- OC中数组类NSArray的详解,常用属性和方法(一)
数组是一个有序的集合,OC中的数组只能存储对象类型, 但是对于对象的类型没有限制. 通过下标访问数组元素,下标从0开始. NSA
- javascript中数组常用的方法
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...
- javascript中数组Array的方法
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
- javascript中数组的concat()方法 - 数组连接
<html> <head> <title>数组的concat()方法</title> <script> /* 数组的concat()方法: ...
- ES6中数组的新方法
数组的扩展 1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. <body> < ...
- JS中数组的迭代方法和归并方法
昨天总结的JavaScript中的数组Array方法 数组的迭代方法 ES5中为数组定义了5个迭代方法.每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响t ...
- OC中的内省(Introspection)方法
我们在写OC代码的时候经常用到:isKindOfClass: 一类的方法,但是对于它并没有一个了解,这里也是从网上搜索了一些内容,简单介绍并记录一下.这类方法就是属于OC的特性之一:内省. 内省(In ...
- Swift的数组与OC中数组的区别
相同的值可以多次出现在一个数组的不同位置: Swift中的数组,数据值在被存储进入到某个数组之前类型必须明确,可以显示的类型标注或者类型推断.而且,Swift中的数组不必是对象类型. OC中的NSAr ...
- javascript中数组常用的方法和属性
前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...
随机推荐
- AC日记——[HNOI2008]GT考试 bzoj 1009
1009 思路: KMP上走DP(矩阵加速): DP[i][j]表示当前在第i位,同是匹配到不吉利串的第j位的方案数: 代码: #include <bits/stdc++.h> using ...
- 前端读者 | 百度前端编码规范(CSS)
本文来自:百度FEX 1 前言 CSS作为网页样式的描述语言,在百度一直有着广泛的应用.本文档的目标是使CSS代码风格保持一致,容易被理解和被维护. 虽然本文档是针对CSS设计的,但是在使用各种CSS ...
- 洛谷P3805 [模板]Manacher算法 [manacher]
题目传送门 题目描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 输入输出格式 输入格式: 一行小写英文字符a,b,c...y,z组成的字符 ...
- [Luogu1979][NOIP2013]华容道(BFS+SPFA)
考虑从起点到终点的过程,一定是先将空格子移到指定格子旁边,和指定格子交换,再移到下一个指定格子要到的地方,再交换,如此反复. 于是问题分为两个部分: 1.给定两个曼哈顿距离为2的格子求最短路,BFS即 ...
- hdu 5963 朋友(2016ccpc 合肥站 C题)
朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
- 【推导】【贪心】Codeforces Round #431 (Div. 1) A. From Y to Y
题意:让你构造一个只包含小写字母的可重集,每次可以取两个元素,将它们合并,合并的代价是这两个元素各自的从‘a’到‘z’出现的次数之积的和. 给你K,你构造的可重集必须满足将所有元素合而为一以后,所消耗 ...
- iOS GCD NSOperation NSThread等多线程各种举例详解
废话就不多说,直接上干货.如下图列举了很多多线程的知识点,每个按钮都写有对应的详细例子,并对运行结果进行分析,绝对拿实践结果来说话.如果各位道友发现错误之处还请指正.附上demo下载地址
- Android 权限处理
概述: 为了保护系统的完整性和用户隐私权,Android 在访问受限的沙盒中运行每款应用. 如果应用需要使用其沙盒以外的资源或信息,则必须明确请求权限. 根据应用请求的权限类型,系统可能会自动授予权限 ...
- 【Rocket MQ】RocketMQ4.2.0 和 spring boot的结合使用,实现分布式事务
RocketMQ4.2.0 和 spring boot的结合使用,实现分布式事务 参考地址:https://www.jianshu.com/p/f57de40621a0
- 【Tomcat MyEcplise】MyEcplise添加一个新的Server,Tomcat8.5报错
添加新的Tomcat添加不进去,报错: The Apache Tomcat installation at this directory is version 8.5.11. A Tomcat 8. ...