Какова цель этой строки кода? - PullRequest
3 голосов
/ 09 января 2012

Рассмотрим этот фрагмент Objective-C:

NSString *elementString = nil;

if(elementText != NULL) {
    elementString = [NSString stringWithCString:(char*)elementText encoding:NSUTF8StringEncoding];
    [elementString self]; 
    xmlFree(elementText);
}

Я понимаю, что [elementString self] возвращает ссылку на elementString. У меня вопрос: поскольку это возвращаемое значение здесь не используется, почему бы [elementString self] вообще вызываться?

Этот шаблон повторяется много раз в процедурах синтаксического анализа XML в приложении, которое я поддерживаю. Если бы это случилось только один раз, я бы заподозрил, что кто-то сделал что-то глупое, но, учитывая его распространенность, мне интересно, чего мне не хватает.

Редактировать: правильный ответ Бенедикта Коэна. Переменная elementString никогда не используется. Большинство экземпляров этого шаблона похоронены в методах из нескольких сотен строк, и я не видел, чтобы он никогда не использовался.

1 Ответ

4 голосов
/ 09 января 2012

Без компилятора выдаст предупреждение, что elementString не используется.

Редактировать: На самом деле, из-за способа, которым elementString объявлен и затем установлен, я не думаю, что это вызовет предупреждение ....

Редактировать: только что проверил. [elementString self] не подавляет предупреждение. Мое единственное предположение, что когда-то оно было включено для подавления предупреждения, но код был реорганизован и больше не нужен.

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