NSMutableArray

简介: Student.h: #import @interface Student : NSObject@property(nonatomic,assign) int age;+(id)studentWithAge:(int)age;@end Student.

Student.h:

#import <Foundation/Foundation.h>

@interface Student : NSObject
@property(nonatomic,assign) int age;
+(id)studentWithAge:(int)age;
@end

Student.m:

#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

main:

#import <Foundation/Foundation.h>
#import "Student.h"
void arrayCreate(){
    NSMutableArray *array=[NSMutableArray arrayWithObject:@"1"];
    //添加成员
    [array addObject:@"2"];
    [array addObject:@"3"];
    //删除成员
    [array removeObject:@"2"];
    [array removeLastObject];
    [array removeAllObjects];
    
    NSLog(@"动态数组是:%@",array);
}
#pragma mark - 数组内存的管理
void arrayMemory(){
    NSMutableArray * array=[NSMutableArray array];
    Student *stu1=[Student studentWithAge:16];
    Student *stu2=[Student studentWithAge:22];
    //注意:array进行添加元素的时候,会对被添加的元素执行一次retain操作,计数器加1
    [array addObject:stu1];//注意:执行这句话之后,首先先对stu1进行一次retain操作,计数器加1
    [array addObject:stu2];
    NSLog(@"addStu->计数器%i",[stu1 retainCount]);
    //注意:array进行删除元素的时候,会对被删除的元素执行一次release操作,计数器减1
    [array removeObject:stu1];//执行这句之后,stu1进行一次release操作,计数器减1
    NSLog(@"removeStu->计数器%i",[stu1 retainCount]);
    //注意:当数组被释放的时候,会对有所由成员进行一次release操作
}
#pragma mark - 替换元素
void arrayReplase(){
    NSMutableArray *array=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil];  //只能塞OC对象
    //替换元素
    [array replaceObjectAtIndex:1 withObject:@"8"];
    Student *stu1=[Student studentWithAge:16];
    [array replaceObjectAtIndex:2 withObject:stu1];//随便塞对象,可以替换一个stu对象
    NSLog(@"array:%@",array);
}
#pragma mark - 排序
void arraySort(){
    NSMutableArray *array=[NSMutableArray arrayWithObjects:@"1",@"4",@"3",@"2",nil];  //只能塞OC对象
    NSLog(@"排序前:%@",array);
    [array sortUsingSelector:@selector(compare:)];
    NSLog(@"排序后:%@",array);
    
}
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        /*arrayCreate();
        arrayMemory();
        arrayReplase();*/
        arraySort();
    }
    return 0;
}

结果:

2013-08-02 15:32:46.883 NSMutableArray[1179:303] 排序前:(

    1,

    4,

    3,

    2

)

2013-08-02 15:32:46.885 NSMutableArray[1179:303] 排序后:(

    1,

    2,

    3,

    4

)


相关文章
|
开发工具
centos8  查看主机名和系统配置
centos8  查看主机名和系统配置
320 0
|
存储 安全 容灾
同步与备份
【7月更文挑战第1天】同步与备份
569 70
|
安全 算法 Java
可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用
可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用
|
10月前
|
Cloud Native Apache 流计算
资料合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
8512 18
资料合集|Flink Forward Asia 2024 上海站
|
存储 监控 物联网
时序数据库的优势有哪些?
【5月更文挑战第13天】时序数据库的优势有哪些?
565 1
|
人工智能 运维 Cloud Native
重磅解读阿里云云网络领域关键技术创新
2023年10月31日,杭州·云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下文简称洛神网络)领域产品服务创新以及背后的技术积累进行了深度解读,不少背后的创新技术系首次重磅披露。
129333 16
|
关系型数据库 数据库 PostgreSQL
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
572 0
|
设计模式
职责链模式
职责链模式
132 0
|
SQL 存储 开发框架
数据库-SQL
1.SQL是什么? 2.SQL 能做什么? 3.要创建一个显示数据库中数据的网站,需要什么? 4.SQL语法
218 0