多数の子ノードを持つカスタムCCNode
クラスがあり、いくつかのカスタム トランジションを作成するために、子への参照を保持したいと考えています。
たとえば、子の背景の場合、カスタム クラスは次のようになります。
@interface MyNode : CCNode
@property (nonatomic, strong) CCNode *background;
@end
@implementation
- (void)setBackground:(CCNode *)background {
if (_background) {
[self removeChild:_background];
}
if (background) {
[self addChild:background];
}
_background = background;
}
- (void)runTransition {
if (_background)
[_background runAction:[…]];
}
@end
問題は、これにより ARC で保持サイクルが発生し、ノード バックグラウンドがメモリから解放されないことです。