Во-первых, почему вы хотите конвертировать в int? CGfloat - это просто typedef для float, и его можно отправлять «как есть», особенно если вы знаете, что отправляете iPhone на iPhone, поскольку они будут использовать одинаковое представление памяти для float. Если вам все еще нужно сделать это по какой-то причине ...
// Choose constants m and c so that the resulting integers
// span as much of the range (INT_MIN, INT_MAX) as possible,
// thus minimising aliasing effects. Also consider using
// long long (64-bit integers).
int x = (int)(m*ship.center.x+c)
NSMutableArray хранит только объекты, поэтому вы можете вместо этого использовать простой массив:
int* arr = malloc(sizeof(x)*ships.length);
for (int i = 0; i < ships.length; i++) {
arr[i] = (int)ships[i].center.x;
}
send_data(arr, sizeof(x)*ships.length);
Я никогда не программировал стек Bluetooth, поэтому не могу вам помочь. К сожалению.