Ошибка преобразования ARC с методом делегата handleSearchForTerm - PullRequest
0 голосов
/ 25 февраля 2012

после преобразования в ARC (автоматически) я заметил, что мой uisearchviewcontroller делегировал проблему где-то (я думаю, что в первом операторе if ниже) Это было изменено в результате, но в любом случае мое приложение падает при попытке выполнить поиск:

Текущий код:

 [self setSavedSearchTerm:searchTerm];

if ([self searchResults] == nil)
{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [self setSearchResults:array];
    array = nil;
}

[[self searchResults] removeAllObjects];

if ([[self savedSearchTerm] length] != 0)
{
    for (KABrand *currentBrand in [self brands])
    {
        if ([currentBrand.name rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound)
        {
            if (![searchResults containsObject:currentBrand])
                [[self searchResults] addObject:currentBrand];
        }
    }
}

Предыдущий код:

- (void)handleSearchForTerm:(NSString *)searchTerm
{
   [self setSavedSearchTerm:searchTerm];

if ([self searchResults] == nil)
{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [self setSearchResults:array];
    [array release], array = nil;
}

[[self searchResults] removeAllObjects];

if ([[self savedSearchTerm] length] != 0)
{
    for (KABrand *currentBrand in [self brands])
    {
        if ([currentBrand.name rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound)
        {
            if (![searchResults containsObject:currentBrand])
                [[self searchResults] addObject:currentBrand];
        }
    }
}

}

Заранее спасибо за помощь!

Спасибо, ребята

1 Ответ

0 голосов
/ 25 февраля 2012

Вот одна потенциальная проблема: -rangeOfString:options: может вернуть NSNotFound. Но вы проверяете, если range.location != NSNotFound.

If, если возвращаемое значение -rangeOfString:options: равно NSNotFound, ваш оператор if становится NSNotFound.location != NSNotFound. Я не верю, что это разрешено.

...