【发布时间】:2021-06-08 21:51:50
【问题描述】:
在我的 SwiftUI 应用程序中,我目前正在使用一个全局结构,它包含颜色或大小等常量属性。 例如
struct App {
struct Colors {
static let mainAppColor: UIColor = UIColor(red: 233/255, green: 230/255, blue: 231/255)
static let mainWhiteColorMiddleOpacity: UIColor = UIColor.white.opacity(0.5)
}
}
// usage
struct ContentView: View {
var body: some View {
Rectangle().foregroundColor(App.Colors.mainBlueColor)
}
}
我一直在争论这是否是一种不好的做法,因为我有很多静态变量,并且想知道用静态方法或计算属性替换它们是否会减少内存使用(因为 body 被计算了很多次)。例如。替换:
struct App {
struct Colors {
static var mainBlueColor: UIColor { UIColor.blue }
static var mainWhiteColorMiddleOpacity: UIColor { UIColor.white.opacity(0.5) }
}
}
// usage
struct ContentView: View {
var body: some View {
Rectangle().foregroundColor(App.Colors.mainBlueColor)
}
}
一个会增加堆使用率,另一个会增加堆栈使用率,对吗? 您认为最佳做法是什么?
【问题讨论】:
标签: ios swift memory-management swiftui