我有一個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