#import <UIKit/UIKit.h> @interface ViewController : UIViewController{ NSMutableArray *_mArray; NSMutableArray *temp; } @property(nonatomic ,retain)NSMutableArray *mArray; @end#import "ViewController.h"
@interface ViewController () @end @implementation ViewController @synthesize mArray = _mArray; -(void)reResultRetainCount{ static int i = 1; NSLog(@"get %d _mArray retain count %d",i++,[_mArray retainCount]); } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // [self reResultRetainCount]; // // _mArray = [[NSMutableArray alloc] init]; // // [self reResultRetainCount]; // // [_mArray release]; [self reResultRetainCount]; _mArray = [[NSMutableArray alloc] init]; [self reResultRetainCount]; [self.mArray addObject:@"123"]; [self.mArray addObject:@"456"]; [self.mArray addObject:@"789"]; /* NSLog(@"%@",self.mArray); [_mArray removeAllObjects]; NSLog(@"%@",self.mArray); */ [self reResultRetainCount]; NSLog(@"%@",_mArray); temp = [_mArray copy]; [_mArray release]; [self reResultRetainCount]; if (temp) { //NSLog(@"temp"); NSLog(@"%@",temp); } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } // //-(void)setMArray:(NSMutableArray *)mArray{ // // if (_mArray != mArray) { // // //_mArray = mArray; // // [_mArray release]; // _mArray = [mArray retain]; // // } // // NSLog(@" set mArray retain count %d",[mArray retainCount] ); // //} @end
总结,不需要。在跑道dealloc 里面去释放的时候,再去removeallobjects。
最多,加上 currentObjets = nil这句话。
安全释放。合理分配。
共享内存,不要随便放。
和同事辩论,结果,V字手势。