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. CVE-2015-7547

    危险漏洞补丁修复通知 漏洞编号 漏洞编号为CVE-2015-7547 漏洞说明: Google安全团队近日发现glibc存在的溢出漏洞. glibc的DNS客户端解析器中存在基于栈的缓冲区溢出漏洞.当 ...

  2. Shell概述

    一,Shell原理

  3. C语言程序设计现代方法_数组(第八章)

    C语言不要求检查下标的范围.当下标超出范围时,程序可能会执行不可预知的行为. 看下这个程序: #include <stdio.h> #define N 10 // int main() { ...

  4. Java——Image 图片切割

    package com.tb.image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io ...

  5. 寻找Linux单机负载瓶颈

    寻找Linux单机负载瓶颈 服务器性能上不去,是哪里出了问题?IO还是CPU?只有找到瓶颈点,才能对症下药: 如何寻找Linux单机负载瓶颈,遵循的原则是不要推测,我们要通过测量的数据说话: 负载分两 ...

  6. bzoj 1202: [HNOI2005]狡猾的商人 并查集好题

    1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2946  Solved: 1384[Submit][Sta ...

  7. GATK3.2.2小结(转载)

    http://blog.csdn.net/skenoy/article/details/38346489 经过几天的摸索和网上资料的查询对GATK软件有点小心得,现总结如下: 1. fasta文件最好 ...

  8. HashMap遍历

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  9. [css]【转载】CSS样式分离之再分离

    原文链接:http://www.zhangxinxu.com/wordpress/2010/07/css%E6%A0%B7%E5%BC%8F%E5%88%86%E7%A6%BB%E4%B9%8B%E5 ...

  10. Css3_浏览器支持

    #box{     color:red;    ⁄* 所有浏览器都支持 *⁄      color:red !important;   ⁄* Firefox.IE7支持 *⁄    _color:re ...