NSMutableArray是NSArray对的子类,它是可变的,可以随意添加或者删除元素。与Array,也有静态和动态两种创建方法。也可已使用NSArray的方法来创建NSMutableArray。当一个元素被加到NSMutableArray中时,会执行一次retain操作;当一个元素从 NSMutableArray中删除时,会执行release操作;当集合被销毁时(调用了dealloc), NSMutableArray里的所有元素都会执行一次release操作(这个原则也适用于其他集合类型:NSDictionary\NSSet等)。

#import <Foundation/Foundation.h>

@interface Student : NSObject
@property (nonatomic, assign) int age; + (id)studentWithAge:(int)age;
@end #import "Student.h" @implementation Student + (id)studentWithAge:(int)age {
Student *stu = [[[Student alloc] init] autorelease];
stu.age = age;
return stu;
} - (void)dealloc {
NSLog(@"[age=%i]被销毁了", _age);
[super dealloc];
}
@end
#import <Foundation/Foundation.h>
#import "Student.h" void arrayCreate() {
NSMutableArray *array = [NSMutableArray arrayWithObject:@""];
// 添加元素
[array addObject:@""];
[array addObject:@""]; // [array removeObject:@"2"];
// [array removeLastObject];
[array removeAllObjects]; NSLog(@"%@", array);
} void arrayMemory() {
NSMutableArray *array = [[NSMutableArray alloc] init];
// stu1:1
Student *stu1 = [[Student alloc] init];
stu1.age = ;
// stu2:1
Student *stu2 = [[Student alloc] init];
stu2.age = ; // 对被添加的元素做一次retain操作,计数器+1
[array addObject:stu1]; // stu1:2
[array addObject:stu2]; // stu2:2 NSLog(@"add->stu1:%zi", [stu1 retainCount]); // 对被删除的元素做一次release操作,计数器-1
[array removeObject:stu1]; // stu1:1 NSLog(@"remove->stu1:%zi", [stu1 retainCount]); // 释放学生
[stu1 release]; // stu1:0
[stu2 release]; // stu2:1 // 当数组被释放的时候,会对所有的元素都做一次release操作
[array release]; // stu2:0
} void arrayReplace() {
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"", @"", @"", nil]; [array replaceObjectAtIndex: withObject:@""]; NSLog(@"%@", array);
} void arraySort() {
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"", @"", @"", nil]; [array sortUsingSelector:@selector(compare:)]; NSLog(@"%@", array);
}

Objective-C:Foundation框架-常用类-NSMutableArray的更多相关文章

  1. Objective-C:Foundation框架-常用类-NSString全解

    Foundation框架中常用的类有字符串.集合.字典等,这里介绍字符串NSString.本文分别介绍了NSString的创建.从文件里读取NSString字符串.通过函数改变外部的NSString变 ...

  2. Objective-C:Foundation框架-常用类-NSObject

    NSObject是所有类的基类,其常见用法有: #import <Foundation/Foundation.h> @interface Person : NSObject - (void ...

  3. Objective-C:Foundation框架-常用类-NSNumber

    NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合 ...

  4. Objective-C:Foundation框架-常用类-NSDictionary

    与NSString.NSArray一样,NSDictionary是不可变的,其对应可变类型为NSMutableDictionary.其用法如下: #import <Foundation/Foun ...

  5. Objective-C:Foundation框架-常用类-NSDate

    直接上代码吧: #import <Foundation/Foundation.h> #pragma mark 日期创建 void dateCreate() { // date方法返回的就是 ...

  6. Objective-C:Foundation框架-常用类-NSNull

    集合中是不能存储nil值的,因为nil在集合中有特殊含义,但有时确实需要存储一个表示“什么都没有”的值,那么可以使用NSNull,它也是NSObject的一个子类. #import <Found ...

  7. Objective-C:Foundation框架-常用类-NSValue

    NSNumber是NSValue的子类,前者只能包装数字,后者可以包装任意值.NSArray.NSDictionary只能存储OC对象,不能存储结构体.因此,如果想要在NSArray.NSDictio ...

  8. Objective-C:Foundation框架-常用类-NSMutableDictionary

    直接上代码吧: #import <Foundation/Foundation.h> @interface Student : NSObject @property (nonatomic, ...

  9. Objective-C:Foundation框架-常用类-NSArray

    NSArray是用来存储对象的有序列表(NSSet是没有顺序的),它是不可变的.NSArray不能存储C语言中的基本数据类型,如int\float\enum\struct等,也不能存储nil.其用法如 ...

随机推荐

  1. [SAP ABAP开发技术总结]IDoc

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. FLASH CC 2015 CANVAS (一) 与AS3的写法区别

    注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 AS3 JS stop() this.stop(); mc.stop() this.mc.stop( ...

  3. cocos2d-x 3.X (二)创建动起来的精灵

    [参考文章]http://www.cnblogs.com/suguoqiang/archive/2013/04/03/2997316.html 在HelloWorldScene.h中声明void ro ...

  4. iOS - Swift NSLocale 本地化信息

    前言 public class NSLocale : NSObject, NSCopying, NSSecureCoding NSLocale 类返回本地化信息,主要体现在"语言" ...

  5. jquery+ajax(用ajax.dll)实现无刷新分页

    利用ajax.dll那种方式的无刷新,在这就不说了,新朋友可以看下我的另一片文件http://www.cnblogs.com/dachuang/p/3654632.html 首先,这里用的是jquer ...

  6. jQuery DOM基础

    jQuery DOM基础 1.对元素内容的获取和修改: 表单用value(),普通元素用html()和text(). html()  html(value)设置和获取html内容,有html标签会自动 ...

  7. asmca无法创建ASM磁盘

    现象 grid用户使用asmca无法创建asm磁盘,如下图 分析 如图所示,报错说是 Grid Infrastructure 出了问题.那么 Grid Infrastructure 是什么 ? 在安装 ...

  8. linux优先级、性能监控指令

    一.优先级 优先级的值=优先系数+nice值     优先系数由系统内核决定,不可更改 nice值可以手动更改,范围是 -20~19 优先级的值越低,优先级越高:优先级的值越高,优先级越低. 所以想调 ...

  9. 转!!MYSQL数据类型

    这篇文章主要介绍了MySQL数据类型和常用字段属性总结,本文总结了日期和时间数据类型.数值数据类型.字符串数据类型等,需要的朋友可以参考下     前言 好比C++中,定义int类型需要多少字节,定义 ...

  10. IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法

    这个世界变化很快,IE8也快出来了,它将不在支持以前{filter:alpha(opacity=50);}的私有属性,转而支持更规范的私有属性-ms-filter: “progid:DXImageTr ...