我有一个名为Node的类,
Node是SKNode的子类,
我在Node对象的init方法中创建并添加了一个SKShapeNode对象作为其子节点,
但是当我尝试在将其添加为子节点后修改此子对象时,什么也没有发生。
@interface Node ()
@property (nonatomic, strong) SKShapeNode *circle;
@end
@implementation Node
- (id)initWithRadius:(float)radius{
if (self = [super init]) {
_circle = [SKShapeNode shapeNodeWithCircleOfRadius:radius];
_circle.fillColor = [UIColor whiteColor];
_circle.name = @"c";
[self addChild:_circle];
}
return self;
}
//1st type of handling child object
- (void)setHighlighted{
NSLog(@"Called");
SKShapeNode *circ = (SKShapeNode *)[self childNodeWithName:@"/c"];
circ.fillColor = [SKColor redColor];
}
我也尝试直接更改属性的属性。
- (void)setHighlighted{
_circle.fillColor = [SKColor redColor];
}
肯定调用了setHighlighted方法。
我甚至尝试过[_circle removeFromParent],然后设置位置、透明度、isHidden属性,但仍然没有任何反应!
问题出在哪里呢?
谢谢。
编辑:
上面的代码没有问题!
很抱歉,问题是这样的: 我有一个NSArray *nodes, 我正在填充nodes,并且在创建它们的同时将它们存储在一个虚拟NSMutableArray *mutableNodesArray中,同时将它们添加为场景的子对象; 在循环结束后,我从mutableNodesArray“复制”对象到nodesArray中,
所以当我试图对存储在nodesArray中的Node对象进行操作时,方法被调用了,但这些方法并不属于作为子对象添加的Node对象......
这是我的错误......