XCode8にて、「Implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'int'」警告が出た場合あります。
その原因は、NSIntegerの持ちうる値が32bitか64bitかは処理系依存だから。
int型変数に値を代入する時はプログラマが明示的にint(32bit)と宣言する必要がある。
そして、NSIntegerはlong型 "または" int型をtypedefしたもの。
例えば、以下のような場合、警告がある。
変更前:
iTotalQuestion = [appDelegate.questions count];
変更後:
iTotalQuestion = (int)[appDelegate.questions count];