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(@"小 龙");

}

}

时间: 2024-10-02 02:27:00

iOS不可变数组的所有操作的相关文章

ios可变数组的所有操作

#pragma mark 创建数组c NSMutableArray * array =[[NSMutableArray alloc] initWithObjects:@"a",@"b",@"c" ,nil]; NSMutableArray * array1 =[NSMutableArray arrayWithObjects:@"a",@"b",@"c" , nil]; NSArray *

iOS不可变字符串的所有操作

可以直接复制代码即可运行看看结果,方便理解 //NSString //OC字符串不能用printf输出 //但是遗憾的是OC没有一个从终端读取数据的方式,需要使用scanf读取C字符串然后转换成OC的字符串 #pragma mark 字符初始化 //创建一个不可变字符串str1 值是常量字符串 //打印字符串用%@来打印 //%@还可以打印对象 NSString * str1 = @"常量字符串"; NSLog(@"%@",str1); //用字符串创建字符串 NS

关于可变数组的一点小知识

最近在使用iOS的可变数组时出现了一个错误,报错信息为: reason: '-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object' 字面的意思就是可变数组的方法发送给了一个不可变的对象. 声明和初始化的代码如下: //声明 NSMutableArray *dataArray; //初始化 dataArray = [NSMutableArray array]; 通过分析dataArray,发现只有

IOS 中runtime 不可变数组__NSArray0 和__NSArrayI

大家可能都遇到过项目中不可变数组避免数组越界的处理:runtime,然而有时候并不能解决所有的问题,因为类簇不一样 #import "NSArray+Security.h" #import "NSObject+Swizzling.h" @implementation NSArray (Security) + (void)load { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{

iOS objective-c之-8:数组NSArray 可变数组-(NSMutableArray)

镔哥自己了一些数组方法,网上又查了些方法出来,应该是比较全面的. 下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"tom",@"jonery",@"stany", nil]; 1.获取数组中总共有多少个对象. - (NSUInteger)count; NSLog(@"%d",[array count

IOS可变数组赋值

1.声明可变数组 @property (strong, nonatomic) NSMutableArray * mutableArray; 2.合适的位置为数组赋值 *.memos = [@[@"11111", @"222222", @"33333"] mutableCopy]; 3.再进行数组里面的值进行调用

iOS中创建数组的简易方法与手势的使用

其实做外包也是挺不错,虽然累点,但是一天天的知识的扩展不少,下面是今天的收获 ①初始化数组一字典的方法 @[] 初始化不可变数组 @{} 初始化不可变字典 ②手势的使用 iOS中处理手势之前是用四个方法: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event - (void)touch

Objective - C NSArray不可变数组和NSMutableArray可变数组

OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见名知意,不可改变的,只要创建成功之后都不能改变数组容量,元素. 创建一个不可变数组对象 //1.初始化方法(多个对象用逗号隔开,并且最后一个对象与nil之间也要有逗号) NSArray *array1 = [[NSArray alloc] initWithObjects:@"zhonger"

objective-c可变数组

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 1 #pragma mark ---------------可变数组-----------------  2 //        可以在数组里面进行增删改的操作  3 //  4 //        可变数组与数组的关系:可变数组是数组的子类,  5 //