【发布时间】:2011-07-14 08:45:32
【问题描述】:
我们在应用程序中发现了一个大内存问题。我们对 UITextField 进行了子类化,并将它们添加到我们所有的主视图中。主视图被正确释放,但是我们的子类中的 dealloc 方法永远不会被命中。这是我们的子类:
标题:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "MyEntities.h"
#import "MyControlHelper.h"
@interface MyTextField : UITextField {
MyControlHelper *myHelper;
UIView *disabledEffect;
}
@property (nonatomic, retain) MyControlHelper *myHelper;
@property (nonatomic, retain) UIView *disabledEffect;
@end
实施:
#import "MyTextField.h"
@implementation MyTextField
@synthesize myHelper;
@synthesize disabledEffect;
-(id) initWithCoder:(NSCoder *)aDecoder{
if (self = [super initWithCoder:aDecoder]){
myHelper = [[MyControlHelper alloc] init];
[myHelper setBoundTextField:self];
[myHelper SetupKeyboardListener];
[self setReturnKeyType:UIReturnKeyDone];
self.autocorrectionType = FALSE;
self.delegate = myHelper;
}
return self;
}
-(id) init{
if (self = [super init]){
myHelper = [[MyControlHelper alloc] init];
[myHelper setBoundTextField:self];
[myHelper SetupKeyboardListener];
[self setReturnKeyType:UIReturnKeyDone];
self.autocorrectionType = FALSE;
self.delegate = myHelper;
}
return self;
}
-(id)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]){
myHelper = [[MyControlHelper alloc] init];
[myHelper setBoundTextField:self];
[myHelper SetupKeyboardListener];
[self setReturnKeyType:UIReturnKeyDone];
self.autocorrectionType = FALSE;
self.delegate = myHelper;
}
return self;
}
-(void)dealloc{
self.myHelper = nil;
self.disabledEffect= nil;
[super dealloc];
}
@end
任何帮助将不胜感激。
干杯。
【问题讨论】:
-
下面的答案对您有任何帮助吗?
标签: iphone ios xcode ipad memory