TRUE - это число (равное 1 по значению), и setRowSwapped, похоже, ожидает указатель некоторого вида в качестве аргумента. Таким образом, компилятор преобразует значение int 1 в указатель, что является предупреждением, потому что это вряд ли когда-либо правильно, и если бы оно было правильным и вы знали бы, что делаете, вы использовали явное приведение, которое также позволяет избежать предупреждение. Так как вы не использовали приведение, вы, вероятно, ожидали, что метод ожидает логическое значение в качестве аргумента, и это кажется неправильным.
Кстати, поскольку это Objective-C, вы не должны использовать TRUE / FALSE в Objective-C, а YES / NO. Разница в том, что TRUE / FALSE относится к типу bool (все строчные буквы, такие же, как _Bool или boolean_t на Mac), а также, как правило, имеет тип int и 4 байта (по крайней мере, для PPC и Intel, возможно, это не так для других устройств Apple , как iPad). ДА и НЕТ относятся к типу BOOL (все в верхнем регистре), и этот тип составляет 4 байта для PPC и 1 байт для Intel. Таким образом, bool и BOOL не всегда одинаковы, и в некоторых очень редких случаях это действительно может вызвать проблемы. Так что не стоит их смешивать. В коде Obj-C используйте BOOL и YES / NO, в коде C используйте bool, boolean_t или _Bool и TRUE / FALSE.