Когда я запускаю свой код через двоичный код версии 252, ошибок анализа нет. Однако, когда я перехожу к использованию последней 253 проверки, она возвращает множество ошибок, все из которых не имеют никакого смысла. Например, здесь есть образ ошибки, что он показывает в браузере Safari после сценария сканирования сборки завершен:Статический анализатор Clang на iPhone-приложении, показывающий ошибки с последней версией
Это довольно распространенная ошибка, которая отображается в списке ошибок. Как вы можете видеть, имя метода имеет Копировать в конце его, но оно по-прежнему сообщается как неправильно названное.
Вот разбивка ошибок, которые я теперь получаю с клетчатой версии 253:
Bug Summary
Results in this analysis run are based on analyzer build checker-253.
Bug Type Quantity
All Bugs 83
Dead code
Unreachable code 17
Memory (Core Foundation/Objective-C)
Bad release 19
Leak of returned object 23
Object sent -autorelease too many times 24
autorelease ошибки, как представляется, связано с тем, что анализатор не может видеть, что методы копирования на самом деле правильно названный, и я попытался найти пример недостижимого кода, но я не мог найти шаблонов или объяснений этих ошибок, так как ошибки были всеми строками кода внутри простых операторов if. Вот один, например:
Я полагаю, что это может быть некоторые ошибки, которые были введены в последней версии проверки, которая вызывает их, чтобы показать, как ошибки. Есть ли что-то еще (какой-то параметр сборки или проблема с скриптом scan-build), который я мог бы здесь пропустить?
Я не думаю, что * GetAllNewOrModifiedCopy * соответствует соглашениям об именах ... – Eiko
Я попробовал кучу разных имен методов, чтобы увидеть, удастся ли эта ошибка уйти (в том числе addedOrModifiedcopy, которая не имеет get или new в name), и он по-прежнему дает ту же ошибку в одном и том же месте. –
Попробуйте 'CopyAllNewOrModified'. Возможно, чекер был ограничен только рассмотрением «copy» и «mutableCopy» в начале имени метода. –