Поскольку я новичок в swift, я решил проверить проблему с вами, ребята, чтобы увидеть, что я делаю не так?
func numberOfSections(in tableView: UITableView) -> Int {
return data.count ?? 0
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
for eachmain in data! {
header.append(eachmain.unitPlaque!)
}
return header[section]
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let data = data { return Pphone.count }
return 0
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView.cellForRow(at: indexPath)?.accessoryType == UITableViewCellAccessoryType.checkmark {
tableView.cellForRow(at: indexPath)?.accessoryType = UITableViewCellAccessoryType.none
} else {
tableView.cellForRow(at: indexPath)?.accessoryType = UITableViewCellAccessoryType.checkmark
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SmsCell") as? SmsTableViewCell
cell?.PhonNumberLbl.text = Pphone[indexPath.row]
cell?.NameLbl.text = Nname[indexPath.row]
return cell!
}
Приведенный выше код показывает, как я заполняю табличное представление.но каждый раздел может иметь разное количество строк.но здесь я получаю одинаковое количество строк для каждого раздела!
, даже я попробовал код ниже, но он говорит, что символ не может быть преобразован в строку
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SmsCell") as? SmsTableViewCell
cell?.PhonNumberLbl.text = Pphone[indexPath.section][indexPath.row]
cell?.NameLbl.text = Nname[indexPath.section][indexPath.row]
return cell!
}
Api Response:
[
{
"contacts" : [
{
"id" : 10155,
"selected" : true,
"name" : "ygfb",
"phoneNumber" : "09123809556"
},
{
"id" : 10159,
"selected" : true,
"name" : "hff",
"phoneNumber" : "08523698522"
},
{
"id" : 9827,
"selected" : true,
"name" : "owner",
"phoneNumber" : "09203137799"
}
],
"unitNo" : 1,
"unitPlaque" : "jack",
"billText" : "textetx"
},
{
"contacts" : [
{
"id" : 10145,
"selected" : true,
"name" : "mmm",
"phoneNumber" : "0912380567"
}
],
"unitNo" : 2,
"unitPlaque" : "mm",
"billText" : "textext"
}
]
Модальный класс:
typealias smsModelList = [SmsModel]
struct SmsModel: Codable {
var unitNo:Int?
var unitPlaque:String?
var billText:String?
var contacts:[ContactsModel?]
}
typealias contactlistmodel = [ContactsModel]
struct ContactsModel: Codable {
var id :Int?
var selected :Bool?
var phoneNumber : String?
var name : String?
}