首页 > 代码库 > 内存管理一道数组存储例题存储精讲! (oc手动管理内存,引用计数器)

内存管理一道数组存储例题存储精讲! (oc手动管理内存,引用计数器)

        //定义一个bigArr数组,

        NSMutableArray *bigArr = [[NSMutableArrayalloc] init]; //引用计数0 - 1

        //此时只是定义了一个smallArr 并没有开辟空间,所以引用计数不加一

        NSMutableArray *smallArr = nil;

        for (int i =0 ; i < 13 ; i++ ) {

            if (i % 3 == 0 ) {

                // 0 3 6 9 12

                //此时为smallArr数组开辟了空间,

                smallArr = [[NSMutableArray alloc]init]; //引用计数 0 - 1

                //此时addobject 内部实现了retain和release 操作,知道就行,不用程序工程师手动计数

                [bigArr addObject:smallArr];

                

                [smallArr release]; //引用计数 1 - 0

//                [smallArr autorelease];

      

            }

            [smallArr addObject:[arr objectAtIndex:i]];

    

//            [smallArr autorelease];

        }

        

        NSLog(@"%@",bigArr);

        //打印过后,任务完成,回收空间

        [bigArr release]; //引用计数 1 - 0

        [arr release];//引用计数 1 - 0