NSEntityDescription работает нормально, но Analyzer говорит, что значение никогда не читается - PullRequest
0 голосов
/ 29 ноября 2011

Я озадачен замечанием анализатора Xcode. Я искал у Стека об этом, но на самом деле не нашел подобной ситуации. У меня есть приложение CoreData / SQLite, где пользователь выбирает запись в таблице, получает все атрибуты для сущности. тогда, исходя из условий, будем действовать.

"ordersController" - это NSArrayController для данных. «Заказ» является вовлеченным лицом. «objectAtIndex: 0» - выбранная запись в таблице.

Вот код:

NSArray* selectedObjects = [ordersController selectedObjects];
NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];
entityOrder = [selectedObjects objectAtIndex:0];
if ([entityOrder valueForKey: bla_bla_bla... { do_something }

Приложение компилируется нормально, без сбоев, без предупреждений и правильно обрабатывает данные, как и предполагалось Однако, когда я запускаю инструмент анализа Xcode, он указывает на эту строку, говоря: «Значение, сохраненное в« entityOrder »во время его инициализации, никогда не читается».

NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];

Как его можно не читать, когда им действительно манипулируют, а переменная корректно изменяется приложением? Как мне улучшить мой код? Спасибо за вашу помощь.

1 Ответ

1 голос
/ 29 ноября 2011

Сразу после строки

NSEntityDescription *entityOrder = [NSEntityDescription entityForName:@"Order" inManagedObjectContext:managedObjectContext];

вы затем переназначаете его на содержимое первого объекта selectedObjects с помощью

entityOrder = [selectedObjects objectAtIndex:0];

Анализатор Xcode сообщает, что первыйназначение излишне, или вы присваиваете результаты [selectedObjects objectAtIndex:0] неправильной переменной в вашем коде.

...