現在(2014年9月)現在NSInteger/CGFloat、arm64用のアプリもビルドしている場合は、iOS APIなどとやり取りするときに使用することをお勧めします。これはfloat、longとintタイプを使用すると予期しない結果が生じる可能性があるためです。
例:FLOAT / DOUBLEとCGFLOAT
例として、UITableViewデリゲートメソッドを使用しtableView:heightForRowAtIndexPath:ます。
32ビットのみのアプリケーションでは、次のように記述されていれば正常に機能します。
-(float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 44;
}
float32ビット値であり、返される44は32ビット値です。ただし、これと同じコードを64ビットarm64アーキテクチャでコンパイル/実行すると、44は64ビット値になります。32ビット値が予想されるときに64ビット値を返すと、予期しない行の高さが得られます。
CGFloatタイプを使用してこの問題を解決できます
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 44;
}
このタイプは、32 floatビット環境の32ビットおよび64ビットを表しますdoubleます。したがって、このタイプを使用する場合、コンパイル/ランタイム環境に関係なく、メソッドは常に期待されるタイプを受け取ります。
整数を期待するメソッドについても同様です。このようなメソッドは、32 intビット環境では32 ビット値を、64ビット環境では64 ビット値を期待しlongます。このケースは、コンパイル/ランタイム環境に基づいNSIntegerて、intまたはとして機能するタイプを使用して解決できlongます。