gpt4 book ai didi

arrays - Swift: append 到字典

转载 作者:行者123 更新时间:2023-11-28 05:29:28 25 4
gpt4 key购买 nike

我在尝试快速追加字典时遇到了一个问题。每次按下按钮时,我都会尝试记录时间。我有两个按钮,每个按钮都有自己的 IBAction,这是第一个:

@IBAction func button1(sender: AnyObject){
logButton("button1")
}

在这个例子中,我将“button1”传递给了一个函数。这是我的词典和函数:

var buttonPresses = Dictionary<String, AnyObject>()
var time = NSDate()

func logButton(button: String){
time = NSDate()
formatter.timeStyle = .shortStyle
buttonPresses[button] = formatter.stringFromDate(time)
}

同时按下两个按钮后,Dictionary 中会填充:

[button1: 1:15PM, button2: 1:15PM]

我想做的是每次都添加它,而不是使用键(按钮 1 或 2)并更新时间。首选输出是:

[button1: 1:15PM, button2: 1:15PM, button1: 1:17PM, button2: 1:19PM]

有了这个,我尝试让字典成为一个包含字典的数组,这样我就可以使用 append 来添加每个按下的按钮:

var buttonPresses = [[String:AnyObject]]()

我不确定如何在 logBu​​tton 函数中设置代码行以 append 按时间的按钮。我尝试过类似的方法,但没有成功:

buttonPresses.append([button] = formatter.stringFromDate(time))

我很业余,所以任何帮助将不胜感激!谢谢。

最佳答案

struct 是使用有意义的访问器存储数据的有趣选择:

import Cocoa

struct ButtonPress {
var name: String?
var time: NSDate?
init(name: String, time: NSDate) {
self.name = name
self.time = time
}
}

var buttonPresses = [ButtonPress]()

func logButton(buttonName: String) {
let thisPress = ButtonPress(name: buttonName, time: NSDate())
buttonPresses.append(thisPress)
}

logButton("button1")
logButton("button2")
logButton("button3")

for pressed in buttonPresses {
println("Name: \(pressed.name!) - Time: \(pressed.time!)")
}

enter image description here

关于arrays - Swift: append 到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29464701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com