//1.1 初始化
NSMutableArray *muArray = [NSMutableArray arrayWithObjects:@"123",@"345",@"2354", nil];
NSMutableArray *mutAry = [NSMutableArray array];
//从其它数组中添加元素
[mutAry addObjectsFromArray:muArray];
//1.2 初始化划好几个元素容量的内存空间,当不超过元素个数时不需要重新请求内存,实际用得较少
NSMutableArray *mutableAry = [[NSMutableArray alloc]initWithCapacity:4];
[mutableAry addObject:@"1"];
[mutableAry addObject:@"2"];
[mutableAry addObject:@"3"];
[mutableAry addObject:@"4"];
[mutableAry addObject:@"1"];
[mutableAry addObject:@"5"];
[mutableAry addObject:@"6"];
//=======增
[muArray insertObject:@"456" atIndex:2];
[muArray addObject:@"d"];
NSLog(@"%@",muArray);
//=======删
[muArray removeObject:@"123"];
//删除所有
// [muArray removeAllObjects];
//删除数组最后一个元素
[muArray removeLastObject];
//删除指定范围的@"1"值
NSRange range = {2,5};
// [mutableAry removeObject:@"1" inRange:range]; //1234156 --> 123456
// [muarray removeObjectAtIndex:4];
NSLog(@"%@",muArray);
//删除相同元素 及 删除指定范围内相同元素
// [mutableAry removeObject:@"1"];
// [mutableAry removeObjectIdenticalTo:@"1"];
// [mutableAry removeObjectIdenticalTo:<#(nonnull id)#> inRange:<#(NSRange)#>]
//根据另一数组元素找出所对应的删除
// [mutableAry removeObjectsInArray:@[@"1",@"4",@"6"]];
//========改
// [muArray replaceObjectAtIndex:3 withObject:@"23"];
NSLog(@"%@",muArray);
//========查
NSString *str = [muArray objectAtIndex:2];
NSLog(@"%@",muArray[1]);
NSLog(@"%@",str);
//数组中加入Number
[muArray addObject:[NSNumber numberWithInt:3]];
int i = [[muArray lastObject] intValue];
[muArray addObject:[NSNumber numberWithFloat:2]];
float y = [[muArray lastObject] floatValue];
//元素调换位置 123456 3和5调换==》125436
[mutableAry exchangeObjectAtIndex:2 withObjectAtIndex:4];
数组写入本地文件保存
//- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
//数组写入文件保存
//从文件转成数组 生成本地一个data.txt文件拖到工程
//沙盒根目录路径
NSString *doucumonPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fileName = @"data.plist"; //data.txt
//根目录下新创建文件夹路径
NSString *folderPath = [doucumonPath stringByAppendingPathComponent:@"myFolder"];
//完整文件路径
NSString *path = [folderPath stringByAppendingPathComponent:fileName];
//创建文件管理器
NSFileManager *file=[NSFileManager defaultManager];
if (![file fileExistsAtPath:folderPath]) {
[[NSFileManager defaultManager] createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:nil];
}
BOOL b = [mutableAry writeToFile:path atomically:YES];
//获取文件数组
//项目路径读取
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"];
//沙盒路径读取
NSMutableArray *fileAry = [NSMutableArray arrayWithContentsOfFile:path];
//==================================================
</pre></p><p style="margin-top: 0px; margin-bottom: 0px; font-size: 13.5px; line-height: normal; font-family: Menlo; color: rgb(0, 175, 202);">arrayWithContentsOfURL</p><pre name="code" class="objc">//从URL转为数组
//URL可以是 http://xxx.plist http://.xxx.xml http://.xxx.txt 等下载地址
NSURL *url = [NSURL fileURLWithPath:path];
//本地URL:file:///var/mobile/Containers/Data/Application/6856FD5B-C8F1-4282-8DF3-D49B97355680/Library/Documentation/myFolder/data.xml
BOOL bb = [mutableAry writeToURL:url atomically:YES];
NSMutableArray *urlAry = [NSMutableArray arrayWithContentsOfURL:url];
//把非对象类型存入数组
想把一些view
因为CGRect,CGPoint等不是NSObject的子类,因此不能够直接添加到NSMutableArray中,所以要先将其转换成NSObject的子类。NSValue类可以解决这个问题,见NSValue类的声明:
如下,可以将CGRect,CGPoint等的数值转换成NSValue类的数值。
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lockButton.png"]];
imageView.frame = CGRectMake(10 * (l + 1) + imageView.frame.size.width * l, 120 + 50 * r, imageView.frame.size.width, imageView.frame.size.height);
[self.lockImageRectArray addObject:[NSValue valueWithCGRect:imageView.frame]];
[self addSubview:imageView];
通过下面的代码,又可以将NSValue转换成CGRect,CGPoint等类型的数值。
CGRect imageRect = [[self.lockImageRectArray objectAtIndex:l] CGRectValue];
通过NSValue就可以实现CGxxx类型的数值存储在NSMutable,NSDictionary类型的数组中。