Я сталкивался с кодом Objective-C, который объявляет переменную прямо под строкой @implementation в файле .m, а не в блоке @interface файла .h. Затем он продолжает использовать его как частный ивар. Я не смог найти документацию по объявлению переменных таким образом и хотел бы знать, как это повлияет.
Пример:
.h
@interface MyClass {
@private
int _myPrivInt1;
}
@end
.m
@implementation
int _myPrivInt2;
@end
Вопросы:
В чем техническая разница между этими двумя переменными?
Это то же самое, что объявлять ivar в блоке .h @interface с помощью модификатора @private или это больше похоже на глобальную переменную C?
Есть ли какие-либо последствия при объявлении переменной таким образом?
Следует ли этого избегать?
Есть ли термин для объявления таких переменных, как _myPrivInt2, который сделал бы мой поиск в Google немного более успешным?