В C (в отличие от C ++) объект, объявленный const
, даже если он инициализирован с помощью константного выражения, не может использоваться как константа.
Вы не удосужились показать нам объявление kABPersonFirstNameProperty
, но я предполагаю, что оно объявлено примерно так:
const int kABPersonFirstNameProperty = 42;
Если вам нужно использовать имя kABPersonFirstNameProperty
в качестве константного выражения, вы можете объявить его как макрос:
#define kABPersonFirstNameProperty 42
или в качестве константы перечисления:
enum { kABPersonFirstNameProperty = 42 };
Обратите внимание, что хак enum позволяет вам объявлять только константы типа int
.
Аналогично для kABPersonLastNameProperty
.
(А почему вы приводите одного из них к int
, а не другого?)
Если это не отвечает на ваш вопрос, это потому, что вы не дали нам достаточно информации.