Каждый раз, когда вы используете этот метод, он создает новый экземпляр XYZ
с помощью (устаревшего) метода +new
.
Если вам нужен один объект класса XYZ
, который сохраняется до конца приложения, вам нужно будет внести некоторые изменения. Самый простой способ - создать этот объект при инициализации класса. В файле .m для любого класса, который мы смотрим здесь, добавьте следующее:
static XYZ *instance = nil;
+ (void)initialize {
if (self != [ThisClass class])
return;
instance = [[XYZ alloc] init];
instance.X = ...;
instance.Y = ...;
instance.Z = ...;
}
А затем ваш A
метод:
+ (XYZ *)A {
return instance;
}