我只是在學習objective-c。希望這是一個簡單的修復方法,適用於以前曾使用過NSMutableArrays的任何人。開始NSMutableArray - 調試忽略
注意:我在看過3個視頻的同時閱讀了5個文章,然後再問這個問題。有足夠的資源可用於setValue:forKey,但我不相信這適用於此場景。
我想用一個簡單的數組來支持在tic tac toe遊戲中做出的選擇。這個概念很簡單: - 陣列實例化爲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]];
}
如果你看到別的被認爲是「不好的代碼」,我會很樂意採取這種反饋也。
任何幫助,非常感謝。
決不叫'-init'方法,無需先調用'+ alloc',像這樣:'[[美孚ALLOC] INIT]'。 – Caleb 2013-05-09 13:48:22