Objective c 开始NSMutableArray-已忽略调试
我只是在学习objective-c。希望对于以前使用过NSMutableArray的人来说,这是一个简单的解决方案 注意:在问这个问题之前,我在YouTube上看了3个视频,读了5篇文章。setValue:forKey有很多可用的资源,但我认为这不适用于这个场景 我正在尝试使用一个简单的数组来支持tic-tac-toe游戏中的选择。概念很简单: -该数组由9个数组节点实例化 -选择后,当前字母将放置在相应的数组节点中 -检查游戏结束的方法将引用数组节点 问题: -我尝试为每个默认对象设置Objective c 开始NSMutableArray-已忽略调试,objective-c,cocoa,nsmutablearray,Objective C,Cocoa,Nsmutablearray,我只是在学习objective-c。希望对于以前使用过NSMutableArray的人来说,这是一个简单的解决方案 注意:在问这个问题之前,我在YouTube上看了3个视频,读了5篇文章。setValue:forKey有很多可用的资源,但我认为这不适用于这个场景 我正在尝试使用一个简单的数组来支持tic-tac-toe游戏中的选择。概念很简单: -该数组由9个数组节点实例化 -选择后,当前字母将放置在相应的数组节点中 -检查游戏结束的方法将引用数组节点 问题: -我尝试为每个默认对象设置NSNu
NSNull
值,而不是@“
。我收到一个错误,错误为“意外的接口名称“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]];
}
如果您看到其他被认为是“坏代码”的东西,我也很乐意接受这些反馈
非常感谢您的帮助。而不是
[选择initWithObjects:
@“,@”,“@”,“@”,“@”,“@”,“@”,“@”,“@”,“零”;
写入selections=[[NSMutableArray alloc]initWithObjects:
@“,@”,“@”,“@”,“@”,“@”,“@”,“@”,“@”,“nil];
尝试将[NSNull null]添加到该数组中。您可以在数组中添加null对象,而不是空字符串
致以最诚挚的问候效果非常好!非常感谢您的快速响应。在未首先调用
+alloc
之前,切勿调用-init
方法,如下所示:[[Foo alloc]init]
。你认为这会有什么不同,为什么?点击同一个按钮将继续改变轮次。需要再添加一次验证。如果用户点击按钮时在数组中添加空对象,请检查该对象是否属于类[NSNull class]。如果没有,请不要更改回合,让用户选择或继续您的实施。我感谢您的反馈,并且我同意NSNull是我最初想要使用的方法。不过,软件没有像您描述的那样做出反应。一旦应用了标题(X或O),点击同一按钮将被忽略。