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的更多相关文章

  1. 可变数组NSMutableArray

    //创建一个空的可变数组 NSMutableArray *array = [NSMutableArray array]; //向数组里面添加对象 [array addObject:@"< ...

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

    OC中存储数据最常用 的两个容器就是数组和字典,而作为最常用的,应该了解这所有的特点,及用法. OC中的数组是一个容量,有序的管理了一系列元素,并且存放在数组里的元素,必须是对象类型. 不可变数组,见 ...

  3. iOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)

    iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的,      可以存放重复的元 ...

  4. objective-c系列-NSMutableArray

    ******************************************** // 可变数组构造方法 //  下边两句的定义都是不可变的 //    NSMutableArray *mar ...

  5. NSArray与NSMutableArray 数组与可变数组

    1.NSArray 是一个父类,NSMUtableArray是其子类,他们构成了OC的数组.2.NSArray的创建NSArray * array = [[NSArray alloc]initWith ...

  6. Foundation框架—— 数组 (NSArray NSMutableArray )

    基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...

  7. OC第三节——NSArray和NSMutableArray

    1.OC数组和c数组的区别        C语言的数组:            相同类型变量的有序结合. 类型:可以是简答数据类型.构造数据类型                int     a[10 ...

  8. IOS - Objective-C NSArray和NSMutableArray的详解 使用

    原文地址:http://blog.csdn.net/totogo2010/article/details/7729377 Objective-C的数组比C++,Java的数组强大在于,NSArray保 ...

  9. Objective-C( Foundation框架 一 数组(NSMutableArray))

    NSMutableArray:可变数组 NSMutableArray是NSArray的子类 创建NSMutableArray数组对象 添加数组元素: // 创建数组 NSMutableArray *a ...

  10. IOS数组NSArray与NSMutableArray知识点

    此文是对数组NSArray与NSMutableArray知识点的总结,主要是一些常见的操作,别外一些操作见其相应的文档,下面的代码部分还运用的第三方插件BlocksKit相结合: a:Foundati ...

随机推荐

  1. Mysql分表和分区的区别、分库和分表区别

    一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法. 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个 ...

  2. 电子口岸 打开“退税联打印”时,PDF界面无法显示

    电子口岸 打开“退税联打印”时,PDF界面无法显示 咨询0571-95198 : IE要在8-10间,系统 要Win7 32B ---------------------参考------------- ...

  3. java 框架-分布式服务框架2Dubbo

    https://blog.csdn.net/houshaolin/article/details/76408399 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的 ...

  4. eclipse复制工作空间配置步骤

    多个workspace,把每个workspace的设置共享,省去每次都重新配置一次. 总结一下,复制工作空间配置步骤如下: [最好是在新的workspace创建项目之前操作] 1 使用eclipse新 ...

  5. 恺撒密码 I

    恺撒密码 I ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭ ...

  6. centos禁止root用户ssh远程登录

    首先,我们要以root身份登录远程主机 vim指令编辑ssh配置文件,如 vim /etc/ssh/sshd_config 查找PermitRootLogin,把yes改为no 修改完配置需要重启ss ...

  7. 卷积神经网络(CNN)的训练过程

    卷积神经网络的训练过程 卷积神经网络的训练过程分为两个阶段.第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段.另外一个阶段是,当前向传播得出的结果与预期不相符时,将误差从高层次向底层次进行传 ...

  8. linux下无法删除文件的解决办法

    1.使用 lsattr 命令查看文件的附加属性.查看文件是否被赋予了 a , i 属性,如果含有这两个属性,文件是不能被删除的. a:让文件或目录仅供附加用途: b:不更新文件或目录的最后存取时间: ...

  9. TensorFlow utils

    1. def model_stats(): print("============================================================" ...

  10. Why do we name variables in Tensorflow?

    Reference:Stack Overflow. The name parameter is optional (you can create variables and constants wit ...