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)
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
}