OC中Foundation框架之NSArray、NSMutableArray

NSArray概述

1 NSArray是OC中的数组类

NSArray特点

1 1)只能存放任意OC对象,并且是有顺序的
2 2)不能存放非OC对象,比如int/float/double/char/enum/struct等
3 3)它是不可变的,一但初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再玩里面添加元素

NSArray的创建方式

1 +(instancetype)array;
2 +(instancetype)arrayWithObject:(id)anObject;
3 +(instancetype)arrayWithObjects:(id)firstObj,...;
4 +(instancetype)arrayWithArray:(NSArray *)array;
5 +(id)arrayWithContentsOfFile:(NSString *)path;//读取一个xml文件
6 +(id)arrayWithContentsOfURL:(NSURL*) url;//读取一个xml文件

NSArray使用注意

1 1)NSArray直接使用NSLog()作为字符串输出时是小括号括起来的形式
2 2)NSArray中不能存储nil,因为NSArray认为nil是数组的结束(nil时数组元素结束的标记). nil就是 0 ,0也是基本数据类型,不能存放到NSArray中
3 3)由于NSArray创建以后就是不可变的,所以  NSArray * array =[NSArray array];//这样的数组永远是空的,不可能向其中增加值.(不可变性)

NSArray的常见用法

 1 获取集合元素个数
 2 -(NSUInteger)count;
 3 获取index位置的元素
 4 -(id) objectAtIndex:(NSUInteger) index;
 5 判断是否包含某个元素
 6 -(BOOL)containsObject:(id)anObject;
 7 返回最后一个元素
 8 -(id)lastObject;
 9 返回第一个元素
10 -(id)firstObject;
11 查找anObject元素在数组中的位置(如果找不到,返回-1) NSNotFound
12 -(NSUInteger)indexOfObject:(id)anObject;
13 在range范围内查找anObject元素在数组中的位置
14 -(NSUInteger)indexOfObject:(id) anObject inRange:(NSRange) range;

NSArray的简写形式

 1 数组的创建
 2     [NSArray arrayWithObjects:@"Jack",@"Rose",@"Jim",nil]
 3 简写后:
 4         @[@"Jack",@"Rose",@"Jim"];
 5
 6
 7 数组元素的访问
 8         [array objectAtIndex:0];
 9 现在
10         array[0];

NSArray的遍历

1,普通for循环
    for(int i=0;i<arr.conten;i++){
        NSLog(@"%@",arr[i];
    }
2.增强for循环
    for(NSString *str:arr){
         NSLog(@"%@",str);
    }
3.block遍历
    id obj  数组的元素的值
    NSUInteger idx 索引index,获取数组元素的下标
    BOOL *stop YES 表示要停止
    [arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){
      NSLog(@"索引:%ld---->元素值:%@ ",idx,obj);
}]

NSArray读写文件

1 1.NSArray数据写入到文件中
2     //创建一个数组
3     NSArray *arr =[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
4     //写入数据到文件中
5     if([arr writeToFile:@"/Users/liwei/Desktop/arr.plit" atomically:YES]){  NSLog(@"写入成功!"); }
6
7 2.从文件中读取数据,并且放到数组中
8     NSArray *arr2 =[NSArray arrayWithContentsOfFile:@"/Users/apple/Desktop/arr.plist"];
9     NSLog(@"arrange=%@",arr2);

NSArray与字符串

1 用separator作拼接符将数组元素拼接成一个字符串
2 -(NSString *)componentsJoinedByString:(NSString *)separator;
3 字符串分隔
4 NSString *str=@"400-588-1688";
5 NSArray *arr =[str componentsSeparatedByString:@"-"];
6 NSLog(@"%@",arr);

NSMutableArray

1 概述:
2     NSmutableArray是NSArray得子类,
3     NSArray是不可变的,而NSMutableArray是可变的,随时可以往里面添加、更改、删除元素
4     //创建一个空的NSMutableArray
5     NSMutableArray *array = [NSMutableArray array];

NSMutableArray的基本使用

 1 //创建空数组
 2 NSMutableArray *arr = [NSMutableArray array];
 3 //创建一个指定长度为5的空数组
 4 NSMutableArray *arrange = [[NSMutableArray alloc]initWithCapacity:5];
 5 //创建一个数组,包含两个元素
 6 NSMutableArray *arr3 =[NSMutableArray arrayWithObjects:@"1",@"2",nil];
 7 //调用对象方法创建数组
 8 NSMutableArray *array=[[NSMutableArray alloc] initWithObjects:@"1",@"2",nil];
 9
10   

NSMutable的方法

 1 添加一个元素
 2 -(void) addObject:(id)object;
 3 添加otherArray的全部元素到当前数组
 4 -(void) addjectsFromArdObray:(NSArray *)array;
 5 在index位置插入一个元素
 6 -(void)insertObject:(id) anObject atIndex:(NSUInteger) index;
 7 删除最后一个元素
 8 -(void)removeLastObject;
 9 删除所有的元素
10 -(void)removeAllObjects;
11 删除Index位置的元素
12 -(void)removeObjectAtIndex:(NSUInteger)index;
13 删除特定的元素
14 -(void)removeObject:(id)object;
15 删除range范围内的所有元素
16 -(void)removeObjectsInRange:(NSRange)range;
17 用anObject替换index位置对应的元素
18 -(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
19 交换idx1 和 idx2位置的元素
20 -(void)exchangeObjectAtIndex:(NSUInteger)idxl withObjectAtIndex:(NSUInteger)idxisdx;

NSMutableArray 错误用法

1 NSMutableArray *array = @[@"bob",@"steve",@"john"];
2 [array addObject:@"Peter"];//错误,使用@[@"bob",@"steve",@"john"]这种方式创建的永远是NSArray(不可变数组);
3
4 正确的做法
5 NSMutableArray *array =[NSMutableArray arrayWithArray:@[@"bob",@"steve",@"john"]];
6 [array addObject:@"Peter"];
时间: 2024-12-17 17:02:53

OC中Foundation框架之NSArray、NSMutableArray的相关文章

OC中Foundation框架的基本对象之数字对象

在Objective-C的程序编写主要用到两个框架 foundation和ApplicationKit.其中Foundation框架主要定义了一些基础类.Foundation框架中所有的类均继承自NSObject对象. Foundation框架中所提到的数字类型,可以通过NS数字类型将基本的数据类型封装到对象中,然后通过相应的对象进行操作. 1.数字对象的介绍 2.数字对象的创建并初始化 2.1用numberWith基本数据类型进行初始化(基本数据类型首字母大写). 格式:  数字对象=[NSN

OC中Foundation框架

框架的概念 1 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的组合,以便使研发程序变的更容易在OS X下地Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架 1 Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字典和集合,其他功能包括处理日期和时间.内存管理.处理文件系统.存储(或归档)对象.处理几何数据结果(如点和长方形) 2 Cocoa是Foundation和AppKit 3 Cocoa Touch是Fo

Foundation框架—— 数组 (NSArray NSMutableArray )

基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4.OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. NSArray NSArray *arr=[NSArray array];//初始化一个空数组 NSArray *arr1=[NSArrayarrayWithObject:@"123"];//初始化一个元素的数组

OC中Foundation框架之NSString

创建方式 1 1)直接赋值 2 NSString *str =@"abc"; 3 2)创建对象 4 NSString *str2 = [[NSString alloc]init]; 5 str2 =@"abc" 6 3)格式化创建 7 NSString *str3=[NSString stringWithFromat :@"@",@"abc"]; 8 9 4)从文件中获取 10 NSString strand =[NSStri

黑马程序员————OC中Foundation框架的结构体和字符串

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>

OC中Foundation框架之NSDictionary、NSMutableDictionary

NSDictionary概述 NSDictionary的作用类似:通过一个key ,就能找到对应的value 同样 NSDictionary是不可变的,一旦初始化完毕,里面的内容就无法修改 NSDictionary创建 1 +(instancetype) dictionary; 2 +(instancetype)dictionaryWithObject:(id) object forKey:(id<NSCopying>)key;//objectForKey,根据键取值 3 +(instance

黑马程序员学习笔记-OC之foundation框架

黑马程序员学习笔记-OC之foundation框架 1.简介:foundation框架是其它所有ios框架的基础,包含了很多常用类型,结构体.枚举.类等. 2. 结构体:NSRange表示范围的结构体. NSPoint/CGPoint表示坐标点的结构体 NSSize/CGSize表示宽高的结构体 NSRect/CGRect表示坐标点+宽高的结构体 3. 类字符串:NSString  字符串类 NSMUtableString  易变字符串类 NSArray         数组类 NSMUtabl

黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类

今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutableArray类是可变的. 一.NSArray类 NSArray中不可以存放基本数据类型,只能存放类的实例,如果需要将基本类型.结构体放入到数组中得话,需要通过NSNumber/NSValue进行数据的封装 同时不能在NSArray中存储nil // // main.m // 16_NSArray // // Created by waterfoxjie

OC - 7 Foundation框架的简单介绍

OC语言-07-OC语言-Foundation框架 结构体 NSRange/CGRange 用来表示一个元素在另一个元素中的范围,NSRange等价于CGRange 包含两个属性: NSUInteger location:表示一个元素在另一个元素中的位置 NSUInteger length:表示该元素的长度 若找不到指定的元素,将返回NSNotFound(整型-1) 常用函数 NSRange NSMakeRange(NSUInteger loc, NSUInteger len)创建一个NSRan