Без определения kFooBarHeight невозможно дать хороший ответ, но я предполагаю, что вы определили kFooBarHeight, используя определение препроцессора? Если да, то лучше всего добавить точку с запятой в конец. Ваше определение должно выглядеть так: #define kFooBarHeight 10
, но вы установили как: #define kFooBarHeight 10;
.
Если у вас есть второе определение, когда оно заменено препроцессором, вы получите:
CGRectMake(0.0f, 10;, 100.0f, 10.0f);
Вот почему ваш второй пример работает правильно, он расширяется до:
CGFloat foo = 10;;
CGRectMake(0.0f, foo, 100.0f, 10.0f);
Опять же, это просто обоснованное предположение, невозможно сказать без фактического определения kFooBarHeight.