NSMutableArray
NSMutableArray 是一个可变数组,是NSArray的子类,但是不可以添加空值
创建NSMutableArray的方法
+(id)arrarWithCapacity:(NSInteger)numItems
-(id)initWithCapacity:(NSInteger)numItems
也可以用创建NSArray的方法创建NSMutableArray
当一个元素被加到集合中时,会执行一次retain操作;当一个元素从集合中移除时,会执行一次release操作,当集合被销毁时(dealloc),集合里面所有元素都执行一次release操作(这个原则同样适用于其它集合:NSDictionary\NSSet)
void arrayCreate(){
NSMutableArray *array=[NSMutableArray arrayWithObject:@“1”];
//Add elements
[array addObject:@”2”];
[array addObject:@”3”];
//removement
[array removeObject:@”2”];
[array removeLastObjects];
[array removeallobjects];
NSLog(@”%@”,array);
}
#pragma mark memory management
Student.h
@interface Student:NSObject
@property (nonatomic,assign) int age;
+(id)studentWithAge: (int) age;
@end
Student.m
@implemtation Student
+(id)studentWithAge: (int) age{
Student *stu= [[[Student alloc]init]autorelease];
stu.age=age;
return stu;
}
-(void)dealloc{
NSLog(@”age=%i is destroied”,_age);
[super dealloc];
}
@end
main.m
#import ”Student.h”
void arraymemory(){
NSMutableArray *arry=[NSMutableArray array];
Student *stu1=[Student studentWithAge:10];
Student *stu2=[Student studentWithAge:20];
[array addObject:stu1];
[array addObject:stu2];
NSLog(@”%zi”,[stu1 retainCount]);
//stu1,stu2 counter 2
[array removeObject:stu1];//stu1 counter1, stu2 counter 2
NSLog(@”%zi”,[stu1 retainCount]);
}
设置集合元素
-(void)setArray:(NSArry *)otherArray
添加一个元素
-(void)addobject:(id)anObject
添加otherArray的全部元素到集合中
-(void)addObjectsFromArray:(NSArray *)otherArray
插入一个对象,在Index地方插入一个对象
-(void)insertObjects:(id)anObject atIndex:(NSUInteger)index
在Indexs指定位置分别插入Objects中的元素
-(void)insertObjects;(NSArray *) objects atIndexs:(NSInsexSet *)indexs
#pragma mark replace elements
void arrayReplace(){
NSMutableArray *array=[NSMutableArray arrayWithObjects:@“1”,@”2”,@”3”,nil];
[array replaceObjectAtIndex:1 withObject:@”4”];//143
}
#pragma mark sort
void arrayort(){
NSMutableArray *array=[NSMutableArray arrayWithObjects:@“1”,@”3”,@”2”,nil];
[array sortUsingSelector:(compare:)];//因为是可变数组所以没有返回值
NSLog(@”%@”,array);
}
NSMutableArray的更多相关文章
- 可变数组NSMutableArray
//创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...
- Objective - C NSArray不可变数组和NSMutableArray可变数组
OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...
- iOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)
iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的, 可以存放重复的元 ...
- objective-c系列-NSMutableArray
******************************************** // 可变数组构造方法 // 下边两句的定义都是不可变的 // NSMutableArray *mar ...
- NSArray与NSMutableArray 数组与可变数组
1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...
- Foundation框架—— 数组 (NSArray NSMutableArray )
基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...
- OC第三节——NSArray和NSMutableArray
1.OC数组和c数组的区别 C语言的数组: 相同类型变量的有序结合. 类型:可以是简答数据类型.构造数据类型 int a[10 ...
- IOS - Objective-C NSArray和NSMutableArray的详解 使用
原文地址:http://blog.csdn.net/totogo2010/article/details/7729377 Objective-C的数组比C++,Java的数组强大在于,NSArray保 ...
- Objective-C( Foundation框架 一 数组(NSMutableArray))
NSMutableArray:可变数组 NSMutableArray是NSArray的子类 创建NSMutableArray数组对象 添加数组元素: // 创建数组 NSMutableArray *a ...
- IOS数组NSArray与NSMutableArray知识点
此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundati ...
随机推荐
- Prometheus Grafana监控全方位实践
这次就不用 docker 部署服务了,这样大家会更容易接受.欢迎阅读. 引言 Prometheus 是一个监控系统,也是一个时间序列数据库,用Go语言开发的,官方文档.通过从某些特定的目标如主机,My ...
- (二十九)JSP之国际化
导入 <%@ taglib url="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 创建三个语 ...
- vue 2.0 + 如何实现加入购物车,小球飞入的动画
github源码地址:https://github.com/13476075014/node-vue/tree/master/mynodeproject/13.sell/sell 在移动端经常会有加入 ...
- 11.ForkJoinPool 分支/合并框架 (工作窃取)
/*ForkJoinPool 分支/合并框架 (工作窃取)*/ Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork) 成若干个小任务(拆到给出的临界值为止),再将一个个的小 ...
- win7登录密码破解方法(不用U盘)
前提:1.不借助U盘等工具.2.已将win7登录账户为test,密码为123456 1.将电脑开机关机几次,进入以下界面 2.然后点击启动修复(推荐),进入以下界面 3.接着就进入到以下界面,然后点击 ...
- java_赋值与初始化
一.赋值(是给变量指定一个值或者是改变 一个变量的值) 变量类型 变量名=表达式 int i=10; 二.初始化 生成一个变量以后,必须通过明确的赋值语句进行初始化,然后在使用这个变量. 局部变量: ...
- (12)流程控制if
流程: 代码执行的过程 流程控制:对代码执行过程的管控 分支结构: (1) 单项分支 (2) 双项分支 (3) 多项分支 (4) 巢状分支 如果条件表达式为真 ,则执行代码块里面的内容从上到下 (1) ...
- Python借助argv和input()制作命令行工具
命令行执行.py文件并传递参数 代码示例如下,将参数解包 from sys import argv import requests import json import time script, us ...
- IIS设置网站为HTTPS并且将HTTP重定向到HTTPS
第一步:下载证书,导入证书到IIS https://help.aliyun.com/knowledge_detail/95502.html 站点绑定https 第二部:安装URL重写模块 rewrit ...
- vulkan的subpass
最近在写 unity上 vulkan开subpass 似乎pc上subpass 的input attachement hlslcc_fbinput_0绑不上的 在手机上能绑上 说明subpass这个功 ...