如果你知道你會需要15或任何number
是,你可以存儲在一個屬性:
@property (nonatomic, assign) NSUInteger number;
- (instancetype)initWithNumberOfNodes:(int)number {
// ... normal stuff ...
self.number = number;
self.nodes = [NSMutableArray arrayWithCapacity:number];
// Populate with placeholders to avoid out of bounds access later.
for (int i = 0; i < number; ++i) {
self.nodes[i] = [NSNull null];
}
// ... normal stuff ...
}
然後,寫自己的小幫手懶洋洋地創建它們。
- (SKNode*)nodeAtIndex:(NSUInteger)index {
NSAssert(index < self.number, @"bad index");
SKNode* node = [self.nodes objectAtIndex:index];
if ([node isKindOfClass:[NSNull class]]) {
node = [[SKNode alloc] init]; // Or whatever.
[self.nodes replaceObjectAtIndex:index withObject:node];
}
return node;
}
,每當你需要一個節點使用您的助手:
SKNode* someNode = [self nodeAtIndex:someIndex];
你應該考慮增加節點到父SKNode,然後用parentNode.children [索引]訪問節點。 – 0x141E 2014-11-04 08:39:17