我們在應用程序中發現了大量內存問題。我們已經將子類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
任何幫助將不勝感激。
乾杯。
下面的答案以任何方式幫助你嗎? – marcus