我有一个UITextField,并在委托类中有一个UITableView。代码如下:内存泄漏 - 仪器,Objective-C
- (BOOL) textField: (UITextField *)theTextField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string {
value = [[theTextField.text stringByReplacingCharactersInRange:range withString:string] retain];
[valueTable reloadData];
return YES;
}
“value”是在我的类的顶部声明为“NSString * value;”的NSString。和“valueTable”只是一个UITableView。当我测试内存泄漏时,出现“value = [[theTextField.text stringByReplacing ...”上的“100%”内存泄漏,我尝试删除该行上的“retain”。然而,后来当我呼吁“价值”时,它是零,这是不好的。
那么我该如何解决内存泄漏?什么是内存泄漏?谢谢!
第一个例子中的'if(value)`语句是不必要的。如果`value`是`nil`,那么`[value release];`什么都不会做,如果不是,它会被释放。 – kubi 2011-01-11 18:28:37