nac*_*n f 0 arrays ios swift ios8
我不确定我在寻找什么,所以我只想给你一个例子......
内部应用程序
让我们说我正在制作购物清单应用程序.在应用程序中,您可以根据需要创建任意数量的购物清单,在这些购物清单中,您可以将项目添加到列表中.
内部代码
所以基本上,我正在尝试在一系列购物清单中创建一个新的项目数组.我怎么做?如果我有一套购物清单应用程序,这是我的代码.但是如何让用户创建新的购物清单(在代码中,新的数组)?
//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"]
Run Code Online (Sandbox Code Playgroud)
当用户创建新的购物清单并附加'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]
Run Code Online (Sandbox Code Playgroud)
如果要访问第二个购物清单中的第二个项目,可以使用以下代码:
let item = shoppingListsArray[1].items[1]
Run Code Online (Sandbox Code Playgroud)
如果您想访问第二个购物清单的名称,您可以使用以下代码:
let name = shoppingListsArray[1].name
Run Code Online (Sandbox Code Playgroud)
如果您想稍后将另一个购物清单添加到数组,只需创建另一个列表并将其附加如下:
let anotherList = ShoppingList(name: "foo shopping list", items: ["foo", "bar", "baz"])
shoppingListsArray.append(anotherShoppingList)
Run Code Online (Sandbox Code Playgroud)