iOS不可变数组的所有操作
#pragma mark 创建数组
//1.通过对象方法创建数组
NSArray * array = [[NSArray alloc]initWithObjects:@"One",@"Two",@"Three",@"Four",@"Five", nil];
// NSLog(@"%@",array);
//nil表示空,本质是0,如果是基础数据类型指针用NULL表,对象指向为空一般用nil表示 类对象为空用Nil;
// Class-->类类型
// SEL --> 选择器
//通过类方法创建数组
NSArray * array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
//从Xcode4.6以后数允许用下述方法创建对象
//NSNumber @()快捷转换基本数组类型到NSNumber对象
//有些公司不允许使用,为保持一致推荐使用对象方法或类方法创建的数组
Dog * dog = [[Dog alloc]init];
NSArray * array3 = @[@"One",@"Two",@"Three",@"Four",@"Five",dog];
//id-->完成指针-->接收任何数据类型的对象
//数组本身是一个对象
//数组的元素如@"One",@"Two",@"Three",@"Four",@"Five"等都是任意类型对象,不仅限于字符串
//创建数组对象时传参,传入的是对象的地址
//数组中只能存储兑现搞得地址,而非存储对象的本体
//同一个对象可以存放发两个数组中,仍然是同一个对象.
//在一个数组中修改了对象,在另一个数组中读取对象,会发现也被修改了
//数组可以存数组
//其实%@可以打印任何对象,只要对对象重写description放来
NSLog(@"%@",array3);
#pragma mark 数组成员的个数
NSUInteger num = [array count];
NSLog(@"%lu",num);
#pragma mark 数组的成员
//0~n-1
//错误信息: index 5 beyond bounds [0 .. 4]'数组越界
NSString * str = [array objectAtIndex:3];
NSLog(@"%@",str);
//Xcode4.6 取数组成员
NSLog(@"%@",array[2]);
#pragma mark 获取数组某元素在数组中的位置
NSUInteger index = [array1 indexOfObject:@"1"];
NSLog(@"%lu",index);
#pragma mark 判断数组是否包含某个元素
BOOL tag = [array containsObject:@"Five"];
NSLog(@"%d",tag);
#pragma mark 获取第一个元素/最后一个元素
NSString * str2 =[array1 firstObject];
NSString * str3 = [array1 lastObject];
NSLog(@"%@ %@",str2 , str3);
#pragma mark 将数组的元素进行拼接
// 只对字符串对象操作
NSString * str4 = [array componentsJoinedByString:@" "];
NSLog(@"%@",str4);
#pragma mark 将字符串进行拆分
NSString * str5 = @"YES,I am a so bad man";
//拆分字符串
NSArray * array4 = [str5 componentsSeparatedByString:@" "];
NSLog(@"%@",array4);
//拆分字符串,生成一堆新的子串,原字符串不变,该方法创建一个数组,将每个子串添加到当前数组中.
// NSCharacterSet * set = [NSCharacterSet characterSetWithCharactersInString:@", "];
NSArray * array5 = [str5 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
//set是集合
//[NSCharacterSet characterSetWithCharactersInString:@", "]这个方法创建一个集合的对象,返回对象地址,字符集合中的字符,来自字符串的@", "
NSLog(@"%@",array5);
#pragma mark 数组元素的混杂
Dog * dog1 = [[Dog alloc]init];
Cat * cat1 = [[Cat alloc]init];
Dog * dog2 = [[Dog alloc]init];
Cat * cat2 = [[Cat alloc]init];
Dog * dog3 = [[Dog alloc]init];
NSArray * array6 = @[dog1,cat1,dog2,dog3,cat2];
//判断对象属于某个类
//-(BOOL)isKindOfClass:(Class)class;
for (id obj in array6) {
if([obj isKindOfClass:[Dog class]]){
NSLog(@"B 哥");
}
if([obj isKindOfClass:[Cat class]]){
NSLog(@"小 龙");
}
}
iOS不可变数组的所有操作的更多相关文章
- ios可变数组的所有操作
#pragma mark 创建数组c NSMutableArray * array =[[NSMutableArray alloc] initWithObjects:@"a",@& ...
- ios开发之--数组的一些操作
1,创建数组 NSMutableArray * array =[[NSMutableArray alloc] initWithObjects:@"a",@"b" ...
- iOS不可变字符串的所有操作
可以直接复制代码即可运行看看结果,方便理解 //NSString //OC字符串不能用printf输出 //但是遗憾的是OC没有一个从终端读取数据的方式,需要使用scanf读取C字符串然后转换成OC的 ...
- OC基础 可变数组与不可变数组的使用
OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...
- IOS NS 字符串 数组 字典 文件 动态 静态 操作
ios 常用字符串的操作 //将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response e ...
- IOS 中runtime 不可变数组__NSArray0 和__NSArrayI
IOS 中runtime 不可变数组__NSArray0 和__NSArrayI 大家可能都遇到过项目中不可变数组避免数组越界的处理:runtime,然而有时候并不能解决所有的问题,因为类簇不一样 # ...
- iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
// // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...
- Objective - C NSArray不可变数组和NSMutableArray可变数组
OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...
- NSArray与NSMutableArray 数组与可变数组
1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...
随机推荐
- 精通javasCRIPT-学习笔记 Features,Functions,Object
关于学习javasCRIPT的书,市面上太多了,有犀牛书,红宝书,但是他们都类似于一本书,包含js的一切,并没有站在一个高度上,看js的本质,我计划看一看jquery作者resig写的<精通ja ...
- js中style的属性
下面这些属性都是通过js的style来设置css.只是整理了一部分,详细的可以参考相应的学习网站,不好的地方欢迎大家拍砖. alignContent :"" 属性在弹性容器内的各项 ...
- C++实现中缀表达式转前、后缀
#include<iostream> #include<string> #include<stack> using namespace std; bool isIn ...
- 关于centos连接mssql的问题
今天要搬迁服务器,需要连接sqlserver,然后装了freetds之后死活就是连接不上mssql,最后才发现,原来需要配置freetds,只需要加上下面一段即可: [192.168.10.12] h ...
- PHP使用正则表达式验证电话号码(手机和固定电话)
这个还不错,很有用. tel='验证的电话号码'; $isMob="/^1[3-8]{1}[0-9]{9}$/"; $isTel="/^([0-9]{3,4}-)?[0 ...
- openstack私有云布署实践【4.2 上层代理haproxy+nginx配置 (办公网测试环境)】
续上一节说明 一开始我也是使用haproxy来做的,但后来方式改了,是因为物理机controller的高配置有些浪费,我需要1组高可用的上层nginx代理服务器来实现其它域名80代理访问,很多办公网测 ...
- hashmap冲突的解决方法以及原理分析:
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样.当程序试图将多个 key-value 放入 HashMa ...
- 第六十六节,htnl音频视频
htnl音频视频 学习要点: 1.音频和视频概述 2.video视频元素 3.audio音频元素 本章主要探讨HTML5中音频和视频元素,通过这两个原生的媒体元素向HTML页面 ...
- 2016 JetBrains 开发者日遇见开发神器的创造者
JetBrains团队首次落地中国北京!2016 JetBrains开发者日将于2016年11月26日星期六10:00-16:30在中国北京举办! 这一次,我们将与社区演讲者一起谈论现代软件开发语言. ...
- 同一级目录js的引入