最近、objective-Cとココアの学習を開始しました。私は徐々にメモリ管理について学び始めています。通常私はちょっとそれの論理を把握します。しかし、今はちょっと混乱しています。ここに私の問題があります:入力時にUISearchDisplayControllerのメモリリークがスタックアップする
私は検索機能付きの簡単なアイオスアプリを作ろうとしています。私はそれに何かを入力すると地獄のような(機器.. ..)リークUITableViewController内のUISearchbarのUISearchDisplayControllerがありますコンパイラとアナライザの両方に警告やエラーは表示されません。ちょうど楽器。
私はhandleSearchTermメソッド内でこの行からのエラーを取得:
- (void)handleSearchForTerm:(NSString *)searchTerm
{
self.savedSearchTerm = searchTerm;
if ([self searchResults] == nil)
{
NSMutableArray *array = [[NSMutableArray alloc] init];
self.searchResults = array;
[array release], array = nil;
}
[[self searchResults] removeAllObjects];
if ([[self savedSearchTerm] length] != 0)
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Name contains[cd] %@)", searchTerm];
self.searchResults = [[datenSort filteredArrayUsingPredicate:predicate] mutableCopy];
}
}
プロパティは、すべてのdeallocメソッドでリリースされています
self.searchResults = [[datenSort filteredArrayUsingPredicate:predicate] mutableCopy];
ここに私のhandleSearchTerm方法です。
@property (nonatomic, copy) NSString *savedSearchTerm;
@property (nonatomic, retain) NSMutableArray *datenSort;
@property (nonatomic, retain) NSMutableArray *searchResults;
、これは私がテーブルビュー内に置く方法です::そして彼らはcellForRowAtIndexPath:
if(tableView == self.searchDisplayController.searchResultsTableView){
dataItem = [searchResults objectAtIndex:indexPath.row];
}else {
dataItem = [datenSort objectAtIndex:indexPath.row];
}
あなたの答えは非常に高く評価されています!