この警告メッセージは「文字列リテラルでもフォーマット引数でもありません」というメッセージが表示されていますが、アプリケーションをデバッグして実行しているときに表示されます。私のファイル名はaddaccount.mで、いくつかのヘッダーファイルが接続されています。警告メッセージ「文字列リテラルではなく、フォーマット引数がありません」
なぜこの行番号が表示されないのですか?事前
この警告メッセージは「文字列リテラルでもフォーマット引数でもありません」というメッセージが表示されていますが、アプリケーションをデバッグして実行しているときに表示されます。私のファイル名はaddaccount.mで、いくつかのヘッダーファイルが接続されています。警告メッセージ「文字列リテラルではなく、フォーマット引数がありません」
なぜこの行番号が表示されないのですか?事前
で
おかげであなたが悪いNSLog
関数呼び出しを持っているようですね。プロジェクト内でNSLog
を検索し、それが問題なのかどうかを確認します。
pchファイル(共通ヘッダー)が、以下のようにnslogのマクロを定義している場合。行番号を取得します。
# define CustomLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
、これまでのNSLogがオフになっているのCustomLog
でのNSLogを交換してください。なぜそれは行番号を表示していないのですか? –
特に、制御されていない書式文字列の脆弱性を警告するものです。http://en.wikipedia.org/wiki/Format_string_vulnerabilities言い換えれば、書式指定子をパラメータとして渡すと、悪いことが起こる可能性があります。また、書式指定子の数がパラメータの数と一致しない可能性があります。 – Jano