我正在使用fruityvice api。我目前正在建立一个单元格的集合视图,显示不同水果的科、属和目,每个单元格都在自己的区域中。当用单元格填充这些区域时,我得到了很多重复的单元格。
我大概知道为什么在定义numberOfItemsInSection时要调用fruits.count(我将调用可编码模型的变量命名为fruits.count)。
api调用的模型:
struct AllFruits: Codable {
let family: String
let genus: String
let id: Int
let name: String
let nutritions: Nutrion
let order: String
struct Nutrion: Codable {
let carbohydrates: Double
let protein: Double
let fat: Double
let calories: Double
let sugar: Double
}
}
每个部分计数:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if section == 0 {
return fruits.count
}
else if section == 1 {
return fruits.count
}
else if section == 2 {
return fruits.count
}
return fruits.count
}
来自API的示例:
{
"genus": "Malus",
"name": "Apple",
"id": 6,
"family": "Rosaceae",
"order": "Rosales",
"nutritions": {
"carbohydrates": 11.4,
"protein": 0.3,
"fat": 0.4,
"calories": 52,
"sugar": 10.3
}
}
我需要知道的是如何返回一个值类型。所以在每一节中,我只为每一种科、属和目指定一个单元格。没有重复。
我试过使用.map,.filter,.sort和大量的谷歌搜索,但我只是谷歌搜索错误或我错过了一些基本的东西
1条答案
按热度按时间0g0grzrc1#
1.你可以得到所有水果/api/水果/所有
1.将其Map到AllFruits模型
1.获取所有可用的水果系列
1.按水果系列获取值