#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字手势。
本文通过一个Objective-C的ViewController实例,详细介绍了如何正确地管理内存,包括对象的创建、使用和释放过程。特别关注了retainCount属性的变化以及合理释放资源的重要性。

被折叠的 条评论
为什么被折叠?



