【发布时间】:2012-01-31 08:00:07
【问题描述】:
我正在开发一个应用程序。我正在执行一次搜索操作。 看我的搜索方法:
-(void)searchData
{
//[A release];
B =[A copy];
[A release];
NSLog(@"A retain count %i",[A retainCount]);
NSLog(@"B retain count %i",[B retainCount]);
C = [[NSMutableArray alloc]init];
[C removeAllObjects];
for (int i=0; i<[B count]; i++) {
DataBaseFields *data = [B objectAtIndex:i];
NSRange range= [data.DBtitle rangeOfString:searchEvents.text options:NSCaseInsensitiveSearch];
if (range.length>0) {
[C addObject:data];
}
}
NSLog(@"shouldChangeTextInRange text is %@",searchEvents.text);
A = [C copy];
NSLog(@"A retain count %i",[A retainCount]);
NSLog(@"C retain count %i",[C retainCount]);
[tableView1 reloadData];
}
在这段代码中 A,B,C 是三个 NSMutableArrays。我没有分配内存,也没有为该数组编写属性。在此,如果搜索操作显示任何数据,则数组 A 在最后 1 显示 retainCount。如果没有结果,则数组 A 在最后 32 或 46 显示 retainCount。所以请告诉我如何解决这个问题。
【问题讨论】: