数组的内存管理

来源:互联网 发布:比较好的java入门书籍 编辑:程序博客网 时间:2024/05/02 04:35

Main.m

#import "Dog.h"int main(int argc, const char * argv[]){    //创建两只狗    Dog *dog1 = [[Dog alloc] init]; //1    Dog *dog2 = [[Dog alloc] init]; //1        //把dog1和dog2存放到数组中    //当对象存放到数组中的时候,数组会将这个对象的计数值+1(retain一次)    NSMutableArray *mutArrary = [[NSMutableArray alloc] initWithObjects:dog1,dog2, nil];    //dog1和dog2  2        NSLog(@"dog1:%ld",dog1.retainCount);    NSLog(@"dog2:%ld",dog2.retainCount);//    [mutArrary removeObjectAtIndex:0];  //当数组的某一个对象被移除的时候,数组会将这个对象的计数值-1(release一次)//    [mutArrary removeLastObject];    //    NSLog(@"dog1:%ld",dog1.retainCount);//    NSLog(@"dog2:%ld",dog2.retainCount);            [mutArrary release];    //当数组释放的时候,他会将数组中的每一个元素release一次    NSLog(@"dog1:%ld",dog1.retainCount);    NSLog(@"dog2:%ld",dog2.retainCount);        [dog1 release];    [dog2 release];        return 0;}

Dog.h

@interface Dog : NSObject

Dog.m

- (void)dealloc{    NSLog(@"dog dealloc");        [super dealloc];}


0 0
原创粉丝点击