![](/img/trans.png)
[英]How do I create a new Swift project without using Storyboards?
[英]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.