【发布时间】:2013-10-09 19:06:07
【问题描述】:
当我从代码中的数组修复 zPosition 时,我遇到了一个奇怪的问题。不加载最后一条记录以及具有相同名称的实际精灵。除了最后一个作品之外的所有其他精灵。
代码:
// Refresh the nodes
NSLog(@"#1 workingArray: %@", workingArray);
for (NSString *aCard in workingArray) {
if ([aCard isEqualToString:[workingArray objectAtIndex:[workingArray count]-1]]) {
NSLog(@"#2 Found %@", aCard); // To check that the record is present
}
SKNode *refreshNodeForZPos = [_background childNodeWithName:aCard];
refreshNodeForZPos.name = aCard;
refreshNodeForZPos.zPosition = zPosition;
zPosition++;
NSLog(@"#3 refreshNode:%@ + z:%.0f", refreshNodeForZPos.name, zPosition);
}
查看#1 NSLog 输出时,我可以看到最后一条记录“CJ”在那里:
'#1' workingArray: (
C6b,
C2b,
CQb,
C8b,
CAb,
CKb,
C5b,
C10b,
C9b,
C4b,
C7b,
C3b,
CJ
#2 NSLog 只是确保我确实找到了记录,而#3 正在记录循环:
'#3' refreshNode:C6b + z:1
'#3' refreshNode:C2b + z:2
'#3' refreshNode:CQb + z:3
'#3' refreshNode:C8b + z:4
'#3' refreshNode:CAb + z:5
'#3' refreshNode:CKb + z:6
'#3' refreshNode:C5b + z:7
'#3' refreshNode:C10b + z:8
'#3' refreshNode:C9b + z:9
'#3' refreshNode:C4b + z:10
'#3' refreshNode:C7b + z:11
'#3' refreshNode:C3b + z:12
'#2' Found CJ
'#3' refreshNode:(null) + z:13
最后一条记录 (z:13) 为空,我不明白为什么。
【问题讨论】:
-
做过调试吗?
childNodeWithName是否返回有效实例? -
"[_background childNodeWithName:aCard]" 在通过@"CJ" 时返回 nil 吗?
-
@Wain 我已经调试了几个小时 :-) 我确实在 childNodeWithName 上插入了一个 NSLog,它为最后一条记录返回 null。
-
@Brian Walker Brian 是的。
-
这就是你得到
null日志的原因。不知道你在找什么...
标签: ios objective-c for-loop sprite-kit