Два элемента NSPoint
являются числами с плавающей запятой, поэтому неправильным является ваш оператор NSLog, а не возвращаемые значения. Вы должны убедиться, что тип в строке формата соответствует типу переменных, что вы можете сделать с помощью приведений:
Это будет работать:
NSLog( @"mouseDown location: (%d,%d)", (int) point.x, (int) point.y );
Как будет это:
NSLog( @"mouseDown location: (%f,%f)", (float) point.x, (float) point.y );
Наличие в NSPoint 32-битной или 64-битной плавающей запятой зависит от версии ОС и системы. Возможно, стоит использовать встроенную функцию «точка-строка»:
NSLog( @"mouseDown location: %@", NSStringFromPoint(point) );
(Обратите внимание, что при выполнении математических вычислений и сравнений все будет работать автоматически без вставки приведений. Только NSLog нуждается в помощи, чтобы получить это право.)