如何解决如何在不重复的情况下创建子数组 Swift
我的 SwiftUI 项目中有一个 Meal 结构
struct Meal: Identifiable,Codable,Equatable {
var id = UUID().uuidString
var name: String
var time: String
var type: String
var recommendation: Bool
}
我也有 ContentViewModel 类
class ContentViewModel: ObservableObject {
init() {
let allItemsInit = Bundle.main.decode([Meal].self,from: "menu.json")
self.allItems = allItemsInit
self.recomendationItems = allItemsInit.filter {$0.recommendation == true}
}
@Published var allItems: [Meal] = []
@Published var recomendationItems: [Meal] = []
}
我只是将某些元素分配给新的 recomendationItems 数组,从而复制它们,这是否是正确的方法。
recomendationItems - 只是举例,会有大量这样的子数组。
解决方法
您不需要“子数组”——您的 View
将在 allItems
更改时更新,因此您可以使用其他计算属性来提供子数组,而不是使它们成为实际的独立容器。
例如:
class ContentViewModel: ObservableObject {
init() {
self.allItems = Bundle.main.decode([Meal].self,from: "menu.json")
}
@Published var allItems: [Meal] = []
var recommendedItems: [Meal] {
return allItems.filter {$0.recommendation == true}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。