【发布时间】:2011-12-10 09:57:30
【问题描述】:
我有这个代码 vistaPrincipal.h
#import <UIKit/UIKit.h>
@interface vistaPrincipal : UIViewController
@property (retain, nonatomic)
IBOutlet UIButton *botonHeros;
- (IBAction)botonHeros:(id)sender;
@end
vistaPrincipal.m
#import "vistaStrength.h"
#import "vistaPrincipal.h"
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)viewDidUnload
{
[self setBotonHeros:nil];
[super viewDidUnload];
}
- (IBAction)botonHeros:(id)sender {
vistaStrength *vistaStr =[[vistaStrength alloc] initWithNibName:@"vistaStrength" bundle:nil];
vistaStr.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:vistaStr animated:YES];
[vistaStr release];
}
vistaStrength.h
#import <UIKit/UIKit.h>
@interface vistaStrength : UIViewController
@property (retain, nonatomic) IBOutlet UIScrollView *scrollStrength;
@property (retain, nonatomic) IBOutlet UIButton *logoStrength;
@property (retain, nonatomic) IBOutlet UIButton *logoAgility;
@property (retain, nonatomic) IBOutlet UIButton *logoIntelligence;
- (IBAction)botonRegresar:(id)sender;
@end
vistaStrength.m
#import "vistaStrength.h"
#import "vistaPrincipal.h"
- (void)viewDidLoad{
[super viewDidLoad];
[scrollStrength setScrollEnabled:YES];
[scrollStrength setContentSize:CGSizeMake(320,600)];
}
- (void)viewDidUnload{
[self setScrollStrength:nil];
[self setLogoStrength:nil];
[self setLogoAgility:nil];
[self setLogoInteligence:nil];
[super viewDidUnload];
}
- (void)dealloc{
[scrollStrength release];
[logoStrength release];
[logoAgility release];
[logoInteligence release];
[super dealloc];
}
- (IBAction)botonRegresar:(id)sender{
vistaPrincipal *primeraVista =[[vistaPrincipal alloc] initWithNibName:@"vistaPrincipal" bundle:nil];
primeraVista.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:primeraVista animated:YES];
[primeraVista release];
}
在这些观点的转变中,我正在失去记忆 我能做什么?
【问题讨论】:
-
是
vistaPrincipal和vistaStrength负责任的公民吗? -
你能发布整个课程吗?看起来您的泄漏是在它们内部分配的内容中。
-
BTW:类名应该以大写字母开头。它会让你的代码更容易阅读。
-
是的,有两个问题。首先 - 这两个视图都正确地处理了它们自己的释放。其次,丢失大量记忆是什么意思?你如何量化这个?在对象创建中?你看到泄漏了吗?
标签: iphone objective-c ios cocoa-touch memory-management