2016-09-28 17 views
1

これがいつ始まったのか分かりませんが、Xcodeが私に型不一致の警告/エラーを与えていないように思えます。たとえば、NSString *を返すメソッドの結果をNSIntegerに代入していたコードで、バグが見つかりました。メソッドのプロトタイプは正しく定義されていますが、コンパイラは警告を出しませんでした。ここでは、コードは次のようになります。ここではXcode 8 NSStringをNSIntegerに割り当てる警告はありませんか?

+ (NSString *)countryDialPrefix; 

NSInteger prefix = [CountryCodes countryDialPrefix]; 

は、すべての言語に設定された警告です:

Apple LLVM 8.0 - Warnings - All languages

+0

警告を生成していない例を共有する必要があります。私のコードでは、「NSString * __ strong '[-Wint-conversion]」の式で「NSInteger」(別名「long」)を初期化する整数変換への警告:互換性のない警告が表示されます。そしてそれは "Implicit Integer to Pointer Conversions"オプションによって制御されます。キャストなどをすると、警告が表示されなくなります。 – Rob

+0

Xcode 8.0(8A218a)の修正された質問でコードサンプルを試しましたが、この "Implicit Integer to Pointer Conversions"をオンにすると、上記の警告が表示されます。あなたが記述した振る舞いを再現することができないので、[問題の小さな再現可能な例](http://stackoverflow.com/help/mcve)で新しいプロジェクトを作成してみることをお勧めします。おそらく、あなたのプロジェクトに興味があり、この動作を引き起こしているかもしれません。 – Rob

答えて

1

これは、プロジェクトレベルでの "その他の警告フラグ" にあった:

-w -Xanalyzer -analyzer-disable-checker -Xanalyzer unix

私は-wを削除し、それを修正しました。

関連する問題