Вы не должны объявлять переменные в файле .h, так как это может привести к ошибкам компоновщика.
скорее вы должны extern-объявить их в файле .h и правильно объявить их в файле .c / .m. Например:
// In the .h
extern int ex1;
extern char ex2 [10];
// In the .c/.m
int ex1;
char ex2;
Причина в том, что несколько .c файлов могут содержать ваш заголовок, и у вас будет несколько определений одних и тех же переменных.
Кроме того, помните, что Objective-C является строгим надмножеством C. Это означает, что все, что работает в C, работает точно так же в Objective-C. Вам нужно беспокоиться только о сохранении / выпуске / автоматическом выпуске объектов Objective-C, в основном всего, что использует этот синтаксис:
@interface MyObject : NSObject
{
// My vars
}
@end