Я вытягивал свои волосы из-за этого, я не могу понять, что это простая проблема.Objective-C: Мои значения инициализации не установлены
У меня есть класс, который расширяет CCNode, вот заголовок:
#import "CCNode.h"
@interface ContentPane : CCNode
@property (nonatomic, strong) CCNode * _rockPath1;
@property (nonatomic, strong) CCNode * _rockPath2;
@property (nonatomic, strong) CCNode *_secondPath1;
@property (nonatomic, strong) CCNode *_secondPath2;
@property (nonatomic) int map;
-(void)generatePane;
@end
Я пытаюсь инициализировать этот класс так, чтобы видимость _rockPath1, _rockPath2 и т.д. скрыта. Однако значения, установленные в init, не соблюдаются. Вот мой init, в моем init я просто пытаюсь установить положение ._rockPath1, потому что я знаю, что эта строка кода работает, потому что у меня есть ее в другом месте в моей программе, и она отлично работает.
- (id)init {
self = [super init];
self.map = 0x11111111;
CCLOG(@"WHAT");
//_rockPath1.position = ccp(90,90);
self._rockPath1.position = ccp(90,90);
return self;
}
После моего класса инициализируются, _rockPath1 не имеет места я поставил для нее, она по-прежнему имеет значение, определенное в SpriteBuilder. Как ни странно, карта установлена на правильные значения, но позиция не соответствует.
Я думаю, что вы не должны расширять этот класс с помощью ccnode, если вы создаете экземпляры внутри этого ContentPane. А также во время init вам нужно выделить память _ rockpath1 перед назначением ей позиции. – bllakjakk