Ваша проблема в том, что вы создаете новый экземпляр Class1 в вашем методе инициализации Class2:
Class1 *theClass1 = [[Class1 alloc] init];
Этот новый экземпляр является дополнением к экземпляру с int youуспешно увеличивается, и, поскольку это свежий кусок памяти, его значение для moveCounter по-прежнему равно 0. Что вам действительно нужно, так это указатель на конкретную копию Class1, с которой вы работали, - не требуется alloc / initили желательно.Попробуйте создать свойство в Class2, которое может содержать указатель на Class1:
#import "Class1.h"
@interface Class2 : NSObject {
Class1 *myPointerToClass1;
}
@property (nonatomic, retain) Class1 *myPointerToClass1;
И, конечно, @synthesize myPointerToClass1 в .m класса2.Теперь, когда Class2 готов содержать указатель на Class1, вам нужно просто заполнить его.В Class1, после кода, который размещает и инициализирует экземпляр Class2, используйте код, подобный следующему:
myClass2.myPointerToClass1 = self;
Просто чтобы убедиться, что я ничего не забыл, я сделал все это, используя ваш код выше, и все работало простохорошо для меня. РЕДАКТИРОВАТЬ: оригинальный ответ начинается здесь, но теперь не имеет значения ..... Вы упомянули, что определили счетчик как свойство, но также вы синтезировали переменную экземпляра в файле своей реализации (.m)?
@synthesize myCounter;
Это автоматически создаст методы установки и получения.Кроме того, вы убедились, что значение увеличивается вообще, возможно, с помощью оператора NSLog в viewcontroller?
NSLog(@"myCounter is currently equal to %d", myCounter); // assuming an int
Если эти основы описаны, возможно, вы могли бы отредактировать свой вопрос, включив в него код, показывающий намподробнее о том, как плохо ведущий класс получает этот указатель на переменную.