альтернатива авто-релизу на ios5 - PullRequest
0 голосов
/ 14 октября 2011

Какая альтернатива авто-релизу в ios5?Ранее работал бы следующий метод для табличных представлений:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSUInteger row = [indexPath row];

    static NSString *TableIdentifier = @"TableIndentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TableIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault 
                                  reuseIdentifier:TableIdentifier]autorelease];
    }

    cell.textLabel.text = [arrAccounts objectAtIndex:row];
    return cell;
}

Как теперь я получаю сообщение "ARC запрещает" и "autorelease недоступен" ... какой обходной путь для этого?

Ответы [ 3 ]

11 голосов
/ 14 октября 2011

просто удалите авто-релиз, ARC сделает всю работу за вас

cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault 
                                  reuseIdentifier:TableIdentifier];

Это чертовски волшебно

3 голосов
/ 14 октября 2011

Удалить авто-релиз звонка.AFAIK компилятор достаточно умен, чтобы понять, что он должен быть автоматически освобожден, и синтезирует соответствующие вызовы для вас.

2 голосов
/ 14 октября 2011

Если вы не хотите вносить необходимые изменения для ARC в текущий файл, вы можете отключить ARC для определенного файла, используя для этого файла новый флаг компилятора -fno-objc-arc.ARC включается с использованием нового флага компилятора -fobjc-arc.Вы можете использовать ARC для каждого файла отдельно, если вам удобнее использовать ручной подсчет ссылок для некоторых файлов.Дополнительная информация: http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html

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