Reputation: 95
Am really like to think of shortcut codes to do the workspace as a piece of cake and am not expert with Swift so there is any shortcut way for below code/scenario
let Item1 = MenuItem()
Item1.titleEn = "item 1"
let Item2 = MenuItem()
Item2.titleEn = "item 2"
let Item3 = MenuItem()
Item3.titleEn = "item 3"
let Item4 = MenuItem()
Item4.titleEn = "item 4"
let Item5 = MenuItem()
Item5.titleEn = "item 5"
let Item6 = MenuItem()
Item6.titleEn = "item 6"
self.items.append(Item1)
self.items.append(Item2)
self.items.append(Item3)
self.items.append(Item4)
self.items.append(Item5)
self.items.append(Item6)
Upvotes: 0
Views: 183
Reputation: 285072
Add an initializer to MenuItem
to pass the title
class MenuItem {
let title : String
init(title: String) { self.title = title }
}
then use an array of the titles and map them
var items = [MenuItem]()
let titles = ["item 1", "item 2", "item 3", "item 4", "item 5", "item 6"]
let menuItems = titles.map { MenuItem(title: $0) }
items.append(contentsOf: menuItems)
For two items use a tuple
class MenuItem {
let title : String
let icon : String
init(title: String, icon: String) { self.title = title; self.icon = icon }
}
var items = [MenuItem]()
let titles = [("item 1", "icon 1"), ("item 2", "icon 2"), ("item 3", "icon 3"), ("item 4", "icon 4"), ("item 5", "icon 5"), ("item 6", "icon 6")]
let menuItems = titles.map { MenuItem(title: $0.0, icon: $0.1) }
items.append(contentsOf: menuItems)
Note:
In most cases it's sufficient to use a struct. The benefit is you get the initializer for free
struct MenuItem {
let title : String
let icon : String
}
Upvotes: 3
Reputation: 31645
Simply, do it in for in
loop:
func appendItem(_ title: String) {
var item = MenuItem()
item.titleEn = title
items.append(item)
}
var items = [MenuItem]()
for i in 0...5 {
appendItem("Item \(i+1)")
}
dump(items)
/*
6 elements
▿ __lldb_expr_48.MenuItem
▿ titleEn: Optional("Item 1")
- some: "Item 1"
▿ __lldb_expr_48.MenuItem
▿ titleEn: Optional("Item 2")
- some: "Item 2"
▿ __lldb_expr_48.MenuItem
▿ titleEn: Optional("Item 3")
- some: "Item 3"
▿ __lldb_expr_48.MenuItem
▿ titleEn: Optional("Item 4")
- some: "Item 4"
▿ __lldb_expr_48.MenuItem
▿ titleEn: Optional("Item 5")
- some: "Item 5"
▿ __lldb_expr_48.MenuItem
▿ titleEn: Optional("Item 6")
- some: "Item 6"
*/
Upvotes: 0