簡體   English   中英

Swift-追加到struct中的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM