1

私は Xcode 4 を使用しており、積極的な警告を使用してコードの潜在的な問題を特定しています。このコードには、C、C++、および Objective C の要素が含まれています。有効な警告フラグは次のとおりです。

-Wall -Wextra -Wconversion -Wstrict-overflow -Wformat=2 -Wformat-security -Woverloaded-virtual -Wreorder -Wsign-promo -Wnon-virtual-dtor -Wstrict-selector-match -Wundeclared-selector -Wno-unused-parameter

Google ライブラリからノイズが発生しています。警告は「フォーマット文字列は文字列リテラルではありません」です。たとえば、streamType を含むステートメントでは次のようになります。

NSString *streamTypeTemplate = @"multipart/related; boundary=\"%@\"";
NSString *streamType = [NSString stringWithFormat:streamTypeTemplate,
  partBoundary];

この警告を消すためのアイデアはありますか。私はそれをGoogleに蹴りましたが、彼らはそれを修正しませんでした. プロセス中に実際の警告を失う可能性があるため、警告を元に戻したくありません。

私の解決策は、ローカルで修正することだと思います。例えば:

NSString *streamType = [NSString stringWithFormat:
  @"multipart/related; boundary=\"%@\"",
  partBoundary];

しかし、フォーマット文字列をコピーして貼り付けたり、ステートメントを削除したりする必要のないものを歓迎します。さらに、Google リポジトリは外部リポジトリであるため、後でコードに触れるとマージが複雑になる可能性があります。

その価値のために、「クリーン コンパイル」はセキュリティ ゲートです。私開発者に、警告を処理したくないので、警告を撤回してもよいと教えたくありません。それは恐ろしい前例を設定し、反例を導きます。

ジェフ

4

0 に答える 0