Swift 为什么我会出现这个错误;无法分配给属性:';简介';是一个只获取属性";-迅捷
我试图从一个名为FeaturedData的文件中的静态数组中为数据对象赋值,但我一直遇到这样一个恼人的错误:“无法赋值:'blurb'是一个仅获取的属性” 这是我的模型:Swift 为什么我会出现这个错误;无法分配给属性:';简介';是一个只获取属性";-迅捷,swift,swiftui,Swift,Swiftui,我试图从一个名为FeaturedData的文件中的静态数组中为数据对象赋值,但我一直遇到这样一个恼人的错误:“无法赋值:'blurb'是一个仅获取的属性” 这是我的模型: struct Featured: Codable { var tagline: String var title: String var blurb: String } 以下是我的ViewModel: import SwiftUI class FeaturedViewModel: Observabl
struct Featured: Codable {
var tagline: String
var title: String
var blurb: String
}
以下是我的ViewModel:
import SwiftUI
class FeaturedViewModel: ObservableObject {
@Published var features = [FeaturedObjectViewModel]()
var data = FeaturedData()
func setFeatured() {
for featured in data.featureds {
let featureObject = FeaturedObjectViewModel(featured: featured)
featureObject.blurb = featured.blurb
self.features.append(featureObject)
}
}
}
struct FeaturedObjectViewModel {
let featured: Featured
var tagline: String {
self.featured.tagline
}
var title: String {
self.featured.title
}
var blurb: String {
self.featured.blurb
}
}
以下是提示错误的行:
featureObject.blurb = featured.blurb
我没有弄错什么。blurb是一个计算属性。您不能指定任何值。它总是回来的 对FeaturedObjectViewModel使用init
struct FeaturedObjectViewModel {
let featured: Featured
var tagline: String = “”
var title: String = “”
var blurb: String = “”
init(featured: Featured){
self.featured = featured
self.tagline = featured.tagline
self.title = featured.title
self.blurb = featured.blurb
}
}
注意:通过这样做,您不需要这样做
featureObject.blurb=featured.blurb
它将通过init自动分配给对象值
另外,在使用computed属性的代码中,无需将值重新指定给featureObject变量。当您获得它时,它将获得featured.blurb值