[英]Swift - Append to array in struct
我目前正在學習快速,並且正在嘗試數據結構。 在5月的代碼中,我有一些帶有名稱(字符串)和幾個任務(字符串數組)的例程。 這些值是一個結構。
所以我試圖在初始化后向數組添加另一個值。 我的代碼實際上在工作,但是我真的認為它很奇怪和奇怪,不要認為這是應該這樣做的方法。
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);
}
}
我嘗試了一些(對我來說)“更正確”的方法,例如:
routines[0].tasks.append("Salut");
但是我總是有很多錯誤,我也不明白。
所以我現在的問題是:它實際上是如何正確完成的? 為什么第二種方法不起作用?
非常感謝您的幫助和建議!
您可以創建一個函數以將值附加到結構中(這就是我要做的)。 您甚至可以使用它來驗證值或附加之前需要執行的其他任何操作,它還可以返回一個布爾值,以使您的代碼知道是否成功附加了該值
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")
}
}
希望對您有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.