//
// 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
Foundation框架(8)——NSMutableArray的增删改查、内存管理、排序
最新推荐文章于 2018-07-24 03:54:25 发布