我有一个名为Res的课程如下
@interface Res : NSObject {
int _id;
NSString *_name;
NSString *_comments;
// ... and to many other objects.
}@property (nonatomic) int id;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *comments;
在我的视图中我有一个UITableView,我希望用户在UITextfield里面输入UITableViewCell中的值,所以我添加了下面的代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//code for creating cell
switch (indexPath.row) {
case 0:
// Label
[[cell textLabel] setText:@"Name :"];
// Textbox
UITextField *_txtName = [[UITextField alloc] initWithFrame:CGRectMake(100, 0, 180, 44)];
[_txtName setDelegate:self];
[_txtName setTag:0];
[cell.contentView addSubview:_txtName];
[_txtName release], _txtName = nil;
break;
case 1:
// ......
}
现在,当用户在文本框中输入值时,我可以通过以下方法获取它
- (void)textFieldDidEndEditing:(UITextField *)textField
{
switch ([textField tag]) {
case 0:
[_resTemp setName:[textField text]];
break;
default:
break;
}
}
我在我的.h文件中将_resTemp
变量声明为实例变量
在ViewDidLoad
方法上我写_resTemp = [[Res alloc] init];
在ViewDidUnload
方法上,我将其释放为[_resTemp release];
我也在dealloc方法中以相同的方式释放它。
仍然有关于此变量的内存泄漏 我不知道在哪里发布这个对象,或者我需要改变我的逻辑。 任何人都可以给我一些链接,引用UITableView中的数据输入代码吗?
答案 0 :(得分:1)
您应该在Res类中定义dealloc
方法。
- (void)dealloc
{
[_name release];
[_comments release];
[super dealloc];
}
该方法将释放Res对象中包含的对象。