Вы, безусловно, можете # определить макрос, как показано ниже. Компилятор заменит «IMAGE_SEGMENT» его значением перед компиляцией. Хотя вы достигнете определения глобального поиска для вашего массива, это не то же самое, что глобальная переменная. Когда макрос раскрывается, он работает как встроенный код, и каждый раз создается новое изображение. Поэтому, если вы будете осторожны в том, где вы используете макрос, вы бы эффективно добились создания глобальной переменной.
#define IMAGE_SEGMENT [[NSImage alloc] initWithContentsOfFile:@"/User/asd.jpg"];
Затем используйте его там, где вам нужно, как показано ниже. Каждый раз, когда выполняется приведенный ниже код, создается новый объект с новым указателем памяти.
imageSegment = IMAGE_SEGMENT