我只是在学习objective-c。希望这对于以前使用过 NSMutableArrays 的任何人来说都是一个简单的修复。
注意:在问这个问题之前,我已经在 you tube 上观看了 3 个视频并阅读了 5 篇文章。setValue:forKey 有很多可用资源,但我认为这不适用于这种情况。
我正在尝试使用一个简单的数组来支持井字游戏中的选择。概念很简单: - 用 9 个数组节点实例化数组 - 当做出选择时,当前字母将被放置在相应的数组节点中 - 检查游戏结束的方法将引用数组节点。
问题: - 我尝试为每个默认对象设置NSNull
值而不是。@""
我得到一个错误"Unexpected interface name 'NSNull'
。- 调试数组节点的 NSLog 逻辑永远不会执行。我的假设是数组没有被填充。
@synthesize lblStatus, currLetter;
@synthesize selections;
@synthesize btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8;
- (void)viewDidLoad
{
[super viewDidLoad];
[selections initWithObjects:
@"", @"", @"", @"", @"", @"", @"", @"", @"", nil];
currLetter = @"X";
[self updateTitle];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)takeTurn:(id)sender {
UIButton *btn = (UIButton *)sender;
if (btn.currentTitle == nil) {
[selections replaceObjectAtIndex:btn.tag withObject:currLetter];
[sender setTitle:currLetter forState:UIControlStateNormal];
[self changeTurns];
}
}
- (void)changeTurns {
if ([currLetter isEqualToString:@"X"]) {
currLetter = @"O";
} else {
currLetter = @"X";
}
for (NSString *node in selections) {
NSLog([NSString stringWithFormat:@"Node: %@", node]);
}
[self updateTitle];
}
- (void)updateTitle {
[lblStatus setText:[NSString stringWithFormat:@"%@'s Turn", currLetter]];
}
如果您看到其他被认为是“错误代码”的内容,我也很乐意接受该反馈。
任何帮助是极大的赞赏。