由于我是新手,所以我决定与你们一起检查问题,看看我在做什么错了?
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响应:
[
{
"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?
}
答案 0 :(得分:2)
假设data
为[SmsModel]?
。以下解决方案将起作用:
func numberOfSections(in tableView: UITableView) -> Int {
return data?.count ?? 0
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return data?[section].unitPlaque ?? ""
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data?[section].contacts?.count ?? 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SmsCell") as! SmsTableViewCell
cell.PhonNumberLbl.text = data?[indexPath.section].contacts?[indexPath.row].name
cell.NameLbl.text = data?[indexPath.section].contacts?[indexPath.row].phoneNumber
return cell
}
答案 1 :(得分:1)
由于在
中使用相同的数据,因此在所有节中得到的行数均相同func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let data = data
{
return Pphone.count
}
return 0
}
您可以在其中将if .. else用于不同的部分
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 1 {
return Pphone.count
} else if section == 2 {
return 0
}
}
答案 2 :(得分:1)
您必须获得@GetMapping(value = "/getVideo", produces = "video/mp4")
public StreamingResponseBody getVideo(@RequestParam(value = "library") String libraryName,
@RequestParam(value = "fileName") String fileName) {
Library lib = librariesConf.getConfig().getLibraries().get(libraryName.toLowerCase());
Video video = lib.getVideoFiles().get(fileName);
lib.getRecentlyViewed().add(video);
librariesConf.getConfig().getLibraries().keySet().forEach((libr) -> System.out.println("LIBR: :" + libr));
return new StreamingResponseBody() {
public void write(OutputStream out2) throws IOException {
try (FileInputStream out = new FileInputStream(lib.getFileDirectory(fileName))) {
StreamUtils.copy(out, out2);
}
}
};
}
的行数计数。我希望数据是从API获取的全部内容的数组。以及您存储在contact
中的内容的每个对象。
eachmain