Предупреждение "Dead Store" в Xcode - PullRequest
0 голосов
/ 29 сентября 2011

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

NSString *graphUrl = nil;

if ([graphArray count] == 1)
{
    objTrial = [graphArray objectAtIndex:0];

    graphUrl = @"http://chart.apis.google.com/chart?cht=s:nda&chf=bg,s,FFFFFF&chs=";

    graphUrl = [graphUrl stringByAppendingString:@"&chd=t:"];
    graphUrl = [graphUrl stringByAppendingString:objTrial.highValue];// get the dead store error here

}
else
{
    //someother operation is done and a value is loaded to aURL
}

Я получаю предупреждение о мертвом магазине, как указано в коде. Как я могу предотвратить это?

Было бы здорово, если бы кто-то мог помочь мне в этом

Ответы [ 3 ]

6 голосов
/ 29 сентября 2011

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

NSString *aUrl;

Edit:

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

aURL = [aValue copy];
2 голосов
/ 29 сентября 2011

Dead Store - это значение, которое присваивается, но никогда не используется. Не о чем беспокоиться. Но если вы не можете контролировать себя ;-) вы можете изменить свой код на

NSString aUrl = nil;

if ([anArray count] == 1) {

    // a value is store in aValue
    // then that value is appended to aURL
    aURL = [aURL stringByAppendingString:aValue];

} else {

    aUrl = @"";
    //someother operation is done and a value is loaded to aURL
}
2 голосов
/ 29 сентября 2011

«мертвое хранилище» означает что-то, что не используется, или, скорее, что-то бесполезное.

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

Здесь вы не использовали объект aUrl после его назначения.

Это не вызовет никаких проблем, кроме нескольких байтовпотерянной памяти.Конечно, если это большой объект, который может быть больше.

Возможно, кто-то мог бы воспользоваться знаниями компиляторов, поскольку оптимизация компилятора могла бы позаботиться о мертвых хранилищах в любом случае.

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