Mar*_*ker 7 arrays struct append swift
我目前正在快速学习并正在试验数据结构。在可能的代码中,我有一些带有名称(字符串)和几个任务(字符串数组)的例程。这些值在一个结构中。
所以我试图在初始化后向数组添加另一个值。我的代码实际上正在运行,但是我真的认为它非常奇怪和奇怪,不要认为这是应该完成的方式。
var routineMgr: routineManager = routineManager();
struct routine{
var name = "Name";
var tasks = [String]();
}
class routineManager: NSObject {
var routines = [routine]();
func addTask(name: String, desc: String){
//init routines with name and an array with certain values, here "Hallo" & "Moin"
routines.append(routine(name: name, tasks: ["Hallo","Moin"]));
//so i just put this part here to make the example shorter, but it would be in ad different function to make more sense
//adding a new value ("Salut") to the tasks array in the first routine
//getting current array
var tempArray = routines[0].tasks;
//appending new value to current value
tempArray.append("Salut");
//replacing old routine with a copy (same name), but the new array (with the appended salut)
routines[0] = routine(name: routines[0].name, tasks: tempArray);
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了一些(对我而言)“更正确”的方法,例如:
routines[0].tasks.append("Salut");
Run Code Online (Sandbox Code Playgroud)
但是我总是有很多错误,我也不明白。
所以我现在的问题是:它实际上是如何正确完成的?为什么第二种方法不起作用?
非常感谢您的帮助和建议!
您可以创建一个函数来附加结构中的值(这就是我要做的)。您甚至可以使用它来验证值或在附加之前需要执行的任何其他操作,它还可以返回一个布尔值以让您的代码知道该值是否已成功附加
var routineMgr: routineManager = routineManager();
struct routine{
var name = "Name";
var tasks = [String]();
mutating func addTask(task: String){
tasks.append(task)
}
}
class routineManager: NSObject {
var routines = [routine]();
func addTask(name: String, desc: String){
routines.append(routine(name: name, tasks: ["Hallo","Moin"]));
routines[0].addTask("Salut")
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有帮助
| 归档时间: |
|
| 查看次数: |
10253 次 |
| 最近记录: |