array.insert 不会保存元素
Posted
技术标签:
【中文标题】array.insert 不会保存元素【英文标题】:array.insert won't save elements 【发布时间】:2017-01-25 02:31:28 【问题描述】:我是 Swift 的初学者,并将创建 Tictactoe 游戏作为练习的一部分。我正在尝试创建一个包含 9 个元素的空数组以跟踪游戏结果。我正在使用 .insert 方法来填充相应的元素。但是,每次玩家点击按钮时,该数组都不会保存先前的元素并从初始数组中更新其自身。 (哦,天哪,我真的不擅长书面解释)
这是我的代码:
import UIKit
class ViewController: UIViewController
var cross = false
@IBAction func buttonPressed(_ sender: UIButton)
var resultArray = [String!](repeating: nil, count:9)
let button = sender
var index = button.tag
if cross
button.setImage(UIImage(named: "cross.png"), for: UIControlState.normal)
resultArray.insert("cross", at: index)
resultArray.remove(at: index+1)
cross = false
else
button.setImage(UIImage(named: "nought.png"), for: UIControlState.normal)
resultArray.insert("nought", at: index)
resultArray.remove(at: index+1)
cross = true
print(resultArray)
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
And here is what I get when running the code
【问题讨论】:
这是和英文论文吗?为什么要双倍间距? :p 你可以简化这一切:pastebin.com/YvFyLJRq 一篇英文论文* :p 。是的,你是对的,你的代码比我的更有意义。感谢分享! 您希望我解释哪一行? 你能解释一下这一行吗: let imageName = cross ? “十字架”:“没有”。我了解它的作用,但我不知道我可以声明这样的变量。这个声明方法叫什么?提前致谢! 【参考方案1】:您在每次按下按钮时重置您的阵列,移动
var resultArray = [String!](repeating: nil, count:9)
函数外,所以它是在类级别定义的,所以每次都不会被重置。
【讨论】:
为什么我没有看到我自己?我现在觉得很傻。感谢您的帮助,您太棒了! 呵呵,一定要犯几次错误,然后你会记得注意它,所以我在开始编程时犯了很多次这个错误:P以上是关于array.insert 不会保存元素的主要内容,如果未能解决你的问题,请参考以下文章