NSString Предупреждение памяти в цели c - PullRequest
1 голос
/ 25 марта 2011
    NSString * str1 = nil;
    NSString * str2 = nil;
    str1 = @"";
    str2 = @"";

Я получил предупреждение памяти "Значение, сохраненное в 'str1', никогда не читается" в приведенном выше утверждении. Есть ли другой способ сделать то же самое?

1 Ответ

7 голосов
/ 25 марта 2011

Предупреждение:

Value stored to 'str1' is never read

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

static void xyzzy (void) {
    int plugh = 7;
}

, где явно не используется переменная plugh.

Это не серьезная проблема (в противном случае это будет скорее ошибка, чем предупреждение), но она также уведомляет вас, что:

  • вы теряете пространство (и, возможно, время, если вы его устанавливаете); или
  • это может свидетельствовать о другой проблеме.

Одним из примеров последнего является случай, когда вы случайно используете str2 где-то, где вы намеревались использовать str1 (возможно, из-за вырезания и вставки, когда вы забыли изменить вставленный код).

Как это исправить:

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