您的位置:首页 > 其它

Foundation框架(8)——NSMutableArray的增删改查、内存管理、排序

2015-01-20 17:54 344 查看
//
//  main.m
//  Foundation框架(8)
//
//  Created by XinYou on 15-1-20.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import
#import "Student.h"

#pragma mark 可变数组的增删改查
void arrayCRUD(){

NSMutableArray *array = [NSMutableArray arrayWithObject:@"1"];
// 增
[array addObject:@"2"];
[array addObject:@"3"];
// 删
//    [array removeObject:@"2"];
//    [array removeLastObject];
//    [array removeObjectAtIndex:1];

// 查
NSString *str = [array objectAtIndex:1];

NSLog(@"str = %@", str);
// 改
[array replaceObjectAtIndex:2 withObject:@"hehe"];

NSLog(@"array = %@", array);

}

#pragma mark 可变数组的内存管理
void arrayMomery(){

NSMutableArray *array = [[NSMutableArray alloc] init];
// stu1:1
Student *stu1 = [[Student alloc] init];
stu1.age = 10;
// stu2:1
Student *stu2 = [[Student alloc] init];
stu2.age = 20;

// 对被添加的元素做一次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

}

#pragma mark 可变数组的排序
void arraySort(){

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"k", @"b", @"a", @"z", nil];
// 类似于不可变数组的排序,但是可变数组的排序是没有返回值的。
// 其他的使用block排序、高级排序等,跟不可变数组也是类似的。
[array sortUsingSelector:@selector(compare:)];

NSLog(@"array = %@", array);

}

int main(int argc, const char * argv[])
{

@autoreleasepool {

//        arrayCRUD();
//        arrayMomery();
arraySort();

}
return 0;
}

//
//  Student.h
//  Foundation框架(8)
//
//  Created by XinYou on 15-1-20.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import

@interface Student : NSObject

@property (nonatomic,assign) int age;

@end
//
//  Student.m
//  Foundation框架(8)
//
//  Created by XinYou on 15-1-20.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import "Student.h"

@implementation Student

- (void)dealloc{

NSLog(@"age = %i 的Student被销毁了", self.age);

[super dealloc];
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: