iPad панель поиска плохой доступ к памяти? - PullRequest
0 голосов
/ 16 сентября 2010

Итак, я пытаюсь реализовать панель поиска в моем приложении, и я очень близок, но не могу понять, где происходит эта ошибка памяти.Вот как выглядит мой метод поиска:

filters = [[NSMutableArray alloc] init];
NSString *searchText = detailSearch.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];

// Normally holds the object (ex: 70 locations)
searchArray = self.copyOfFilters ;

//This is the line that is breaking after ~2-3 letters are entered in the search
for (NSString *sTemp in searchArray)
{
    NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];

    if (titleResultsRange.length > 0)
        [filters addObject:sTemp];
}
displayedFilters = filters;

copyOfFilters - это глубокая копия отображаемых фильтров, которые появляются при первой загрузке представления через:

self.copyOfFilters = [[NSMutableArray alloc] initWithArray:displayedFilters copyItems:YES];    

Я проследилчерез ввод букв и это точно после 2 букв, но как только вы пытаетесь ввести букву после пробела в строке поиска, он падает.Значение объектов copyOfFilters = {(int) [$ VAR count]}.Кто-нибудь знает, что может быть причиной этого?Спасибо!

Ответы [ 3 ]

0 голосов
/ 16 сентября 2010
NSMutableArray *searchArray = [[NSMutableArray alloc] init];

// Normally holds the object (ex: 70 locations)
searchArray = self.copyOfFilters ;

- это действительно простая утечка памяти. Вы создаете NSMuatbleArray и теряете все шансы выпустить его с помощью следующего оператора.

Убедитесь, что вы не выпускаете и не изменяете copyOfFilters или searchArray в любом месте своего кода.

0 голосов
/ 16 сентября 2010

Мне интересно, если у вас возникли проблемы при изменении self.copyOfFilters или около того Попробуйте

searchArray = [self.copyOfFilters copy] ;

Не забудьте освободить searchArray после цикла. Это может быть выстрел в темноте, но может быть стоит выстрел?

0 голосов
/ 16 сентября 2010

вы сбросили фильтры, пока вызывали displayFilters?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...