我现在正在从iOS编程Big Nerd Ranch一书中学习S.O.L.I.D。我想通过方便初始化创建一个数组,但是我遇到了一个问题,我想像显示数组的确切顺序一样显示文本和图像,但是我不知道怎么做。在这里,我向您展示我的代码
这是我的物品类别
class Item: NSObject {
var imageName: String
var label: String
init(imageName: String, label: String) {
self.imageName = imageName
self.label = label
super.init()
}
convenience init(list: Bool = false) {
if list {
let imageList = ["milada-vigerova", "david-rodrigo", "quran"]
let labelList = ["Fiqih", "Hadist", "Tafsir"]
let sortImageName = imageList[imageList.count - 1]
let sortLabel = labelList[labelList.count - 1]
self.init(imageName: sortImageName, label: sortLabel)
} else {
self.init(imageName: "", label: "")
}
}
}
这是我的ItemStore类,它从Item类创建一个数组
class ItemStore {
var allItems = [Item]()
@discardableResult func createItem() -> Item {
let newItem = Item(list: true)
allItems.append(newItem)
return newItem
}
// I make this for in loop to make the table view numberOfSection will return 3 of an allItems
init() {
for _ in 0..<3 {
createItem()
}
}
}
请帮助我
答案 0 :(得分:2)
好主啊,这是书呆子,代码繁琐。
首先一个结构就足够了,您可以免费获得初始化器
struct Item {
let imageName: String
let label: String
}
在ItemStore
中立即创建数组
class ItemStore {
var allItems = [Item]()
func createArray() {
allItems = [Item(name: "Fiqih", image: "milada-vigerova"),
Item(name: "Hadist", image: "david-rodrigo"),
Item(name: "Tafsir", image: "quran")]
}
}
在表格视图中,在allItems.count
中返回numberOfRows
(不是numbersOfSection
)