Comment faire pour résoudre un “Argument passé à l'appel qui ne prend pas d'arguments” d'erreur?
Je suis tenter de faire un TicTacToe jeu. Je suis en train d'utiliser cette checkForWinner
fonction, mais continue à obtenir des erreurs. Toute aide est grandement appréciée.
Voici mon code
class ViewController: UIViewController {
@IBOutlet weak var CurrentLetterLabel: UILabel!
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var label3: UILabel!
@IBOutlet weak var label4: UILabel!
@IBOutlet weak var label5: UILabel!
@IBOutlet weak var label6: UILabel!
@IBOutlet weak var label7: UILabel!
@IBOutlet weak var label8: UILabel!
@IBOutlet weak var label9: UILabel!
@IBOutlet weak var label10: UILabel!
@IBOutlet weak var label11: UILabel!
let letter = "XOXOXOXOXO"
var moveCounter = 0
var currentLetter:Character!
var labelArray = [UILabel]()
override func viewDidLoad() {
super.viewDidLoad()
labelArray.append(label1)
labelArray.append(label2)
labelArray.append(label3)
labelArray.append(label4)
labelArray.append(label5)
labelArray.append(label6)
labelArray.append(label7)
labelArray.append(label8)
labelArray.append(label9)
labelArray.append(label10)
labelArray.append(label11)
getCharacter()
}
func getCharacter(){
let myRange = Range<String.Index>(start: letter.startIndex.advancedBy(moveCounter), end: letter.startIndex.advancedBy(moveCounter + 1))
CurrentLetterLabel.text = letter.substringWithRange(myRange)
currentLetter = Character(letter.substringWithRange(myRange))
}
func clearLabels(Action:UIAlertAction){
label1.text = ""
label2.text = ""
label3.text = ""
label4.text = ""
label5.text = ""
label6.text = ""
label7.text = ""
label9.text = ""
label10.text = ""
label11.text = ""
}
func presentWinningAlert(){
moveCounter = 0
let alert = UIAlertController(title: "", message: "byr", preferredStyle: UIAlertControllerStyle.Alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: clearLabels)
alert.addAction(okAction)
presentViewController(alert, animated: true, completion: nil)
}
@IBAction func onTapped(sender: UITapGestureRecognizer) {
print("Here")
let selectedPoint = sender.locationInView(self.view)
print(selectedPoint)
for label in labelArray{
if CGRectContainsPoint(label1.frame, selectedPoint){
label1.text = String(currentLetter)
}
if CGRectContainsPoint(label2.frame, selectedPoint){
label2.text = String(currentLetter)
}
if CGRectContainsPoint(label3.frame, selectedPoint){
label3.text = String(currentLetter)
}
if CGRectContainsPoint(label4.frame, selectedPoint){
label4.text = String(currentLetter)
}
if CGRectContainsPoint(label5.frame, selectedPoint){
label5.text = String(currentLetter)
}
if CGRectContainsPoint(label6.frame, selectedPoint){
label6.text = String(currentLetter)
}
if CGRectContainsPoint(label7.frame, selectedPoint){
label7.text = String(currentLetter)
}
if CGRectContainsPoint(label8.frame, selectedPoint){
label8.text = String(currentLetter)
}
if CGRectContainsPoint(label9.frame, selectedPoint){
label9.text = String(currentLetter)
}
if CGRectContainsPoint(label10.frame, selectedPoint){
label10.text = String(currentLetter)
}
}
moveCounter++
if moveCounter == 9{
presentWinningAlert()
}
getCharacter()
}
func checkForWinner(){
if label1.text == label2.text && label2.text == label3.text && label3.text != "" {
presentWinningAlert("\(label3.text!)")
}
else if label4.text == label5.text && label5.text == label6.text && label6.text != "" {
presentWinningAlert("\(label6.text!)")
}
else if label7.text == label8.text && label8.text == label9.text && label9.text != "" {
presentWinningAlert("\(label9.text!)")
}
else if label1.text == label4.text && label4.text == label7.text && label7.text != "" {
presentWinningAlert("\(label7.text!)")
}
else if label2.text == label5.text && label5.text == label8.text && label8.text != "" {
presentWinningAlert("\(label8.text!)")
}
else if label3.text == label6.text && label6.text == label9.text && label9.text != "" {
presentWinningAlert("\(label9.text!)")
}
else if label1.text == label5.text && label5.text == label9.text && label9.text != "" {
presentWinningAlert("\(label9.text!)")
}
else if label3.text == label5.text && label5.text == label7.text && label7.text != "" {
presentWinningAlert("\(label7.text!)")
}
if moveCounter == 9
{
presentWinningAlert("No One")
}
}
}
Ce qui est précisément le message d'erreur, et où n'est-il produit? Je ne vois pas qu'checkForWinner est appelé n'importe où. – Et s'il vous plaît essayer de réduire le code pour la partie pertinente: Pas tout votre code, mais un minimum exemple illustrant le problème.
Il se produit lors de la tentative de "presenWinningAlert("(label8.le texte!")
Si votre problème est presentWinningAlert, pas checkForWinner. – Eh bien, votre presentWinningAlert méthode n'a pas de paramètres, mais vous êtes en l'appelant avec un argument. Le compilateur est à droite!
Il se produit lors de la tentative de "presenWinningAlert("(label8.le texte!")
Si votre problème est presentWinningAlert, pas checkForWinner. – Eh bien, votre presentWinningAlert méthode n'a pas de paramètres, mais vous êtes en l'appelant avec un argument. Le compilateur est à droite!
OriginalL'auteur Johnd | 2016-02-09
Vous devez vous connecter pour publier un commentaire.
Vous êtes à l'appel de la fonction avec un paramètre de chaîne, mais la fonction ne prend pas le paramètre de la chaîne.
Soit l'appel doit être
sans passer des arguments ou la fonction doit être modifié pour
OriginalL'auteur Domnic Francis