簡體   English   中英

我如何使用Swift創建新數組?

[英]How to i create new arrays using swift?

我不確定要尋找什么,所以我僅舉一個例子。

內部應用

可以說我正在制作購物清單應用。 在該應用程序中,您可以創建任意數量的購物清單,並且可以在這些購物清單中添加商品。

內部代碼

因此,基本上,我正在嘗試在購物清單數組中創建新的商品數組。 我怎么做? 如果我有一套購物清單應用程序,這是我的代碼。 但是,如何允許用戶創建新的購物清單(在代碼中為新數組)?

//users can keep on appending this array every time they create a shopping list

var shoppingListsArray:[String] = ["Shopping list 1", "Shopping list 2", "Shopping list 3"]

var contentsOfShoppingList1 = ["Item1", "Item2", "Item3"]

var contentsOfShoppingList2 = ["Item1", "Item2", "Item3"]

var contentsOfShoppingList3 = ["Item1", "Item2", "Item3"]

當用戶創建新的購物清單並附加“ shoppingListsArray”時,如何創建該購物清單內容的新數組?

我希望我能很好地解釋我的問題。 如果您不了解某些內容,請隨時編輯此問題或發表評論。

您提到了購物清單必須有名稱的要求。 您可以為此使用NSDictionary ,但隨后所有購物清單都必須具有唯一的名稱。

解決此問題的最簡單,最靈活的方法是制作一個ShoppingList結構,該結構包含列表的名稱和列表中的項目數組。 然后,您將使shoppingListsArray成為ShoppingList結構的數組。

這是一個小例子:

struct ShoppingList {
    let name: String
    let items: [String]
}

let list1 = ShoppingList(name: "List 1", items: ["Item 1", "Item 2", "Item 3"])
let list2 = ShoppingList(name: "List 2", items: ["Item 1", "Item 2", "Item 3"])
let list3 = ShoppingList(name: "List 3", items: ["Item 1", "Item 2", "Item 3"])
var shoppingListsArray = [list1, list2, list3]

如果要訪問第二個購物清單中的第二個項目,請使用以下代碼:

let item = shoppingListsArray[1].items[1]

如果要訪問第二個購物清單的名稱,請使用以下代碼:

let name = shoppingListsArray[1].name

如果以后要向陣列添加另一個購物清單,只需制作另一個清單,然后將其追加即可:

let anotherList = ShoppingList(name: "foo shopping list", items: ["foo", "bar", "baz"])
shoppingListsArray.append(anotherShoppingList)

由於您的購物清單是字符串數組,並且您希望將這些數組放入新的購物清單數組中,因此需要一個由字符串數組組成的數組。

像這樣:

let contentsOfShoppingList1 = ["Bananas", "Apples", "Oranges"]
let contentsOfShoppingList2 = ["Eggs", "Bread", "Salt"]

var shoppingListsArray = [[String]]()

shoppingListsArray.append(contentsOfShoppingList1)
shoppingListsArray.append(contentsOfShoppingList2)

println(shoppingListsArray) // [[Bananas, Apples, Oranges], [Eggs, Bread, Salt]]

更新:

像這樣訪問數據:

let apples = shoppingListsArray[0][1] // "Apples"
let salt = shoppingListsArray[1][2] // "Salt"

編輯:響應新要求。

我認為您應該將shoppingListsArray保留為Dictionary

var shoppingListsArray = Dictionary<String, [String]>()

var contentsOfShoppingList1 = ["Item 1", "Item 2", "Item 3"]
var contentsOfShoppingList2 = ["Item 1", "Item 2", "Item 3"]
var contentsOfShoppingList3 = ["Item 1", "Item 2", "Item 3"]

shoppingListsArray["Shopping List 1"] = contentsOfShoppingList1
shoppingListsArray["Shopping List 2"] = contentsOfShoppingList2
shoppingListsArray["Shopping List 3"] = contentsOfShoppingList3

// When user create new shopping list
var newShoppingList = ["Computer", "Monitor"]

shoppingListArray["Computer parts"] = newShoppingList

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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