【发布时间】:2021-11-13 22:16:55
【问题描述】:
正如电影结构如下所示,我想通过upVote 函数上传我的vote 保险库,但错误发生为“无法分配给属性:'vote' 是一个 get-only 属性”。
除了vote和'isFavored,其他属性都是从本地JSON文件解码出来的。
我的结构
struct Movie:Codable,Identifiable{
let id=UUID()
let MOVIE_ID:String
let NAME:String
let ALIAS:String
let ACTORS:String
let COVER:String
let DIRECTORS:String
let DOUBAN_SCORE:String
let DOUBAN_VOTES:String
let GENRES:String
let IMDB_ID:String
let LANGUAGES:String
let DIRECTOR_IDS:String
\\my own property:
var isFavered:Bool = false
\\init the vote
var vote:Int{
if let v = Int(DOUBAN_VOTES){
return v
}else{
return 0
}
}
enum CodingKeys: String, CodingKey {
case MOVIE_ID, NAME,ALIAS,ACTORS,COVER,DIRECTORS,DOUBAN_SCORE
case DOUBAN_VOTES,GENRES,IMDB_ID,LANGUAGES,MINS,OFFICIAL_SITE
case REGIONS,RELEASE_DATE,SLUG,STORYLINE,TAGS,YEAR,ACTOR_IDS,DIRECTOR_IDS
}
\\my uploade vote function
func upVote(newVote:Int){
vote = newVote \\ here occurs the error
}
}
【问题讨论】:
-
关于我在你之前的问题中的评论:现在你已经添加了 CodingKeys,没有理由再使用丑陋的 UPPER_SNAKE_CASE 属性名称????
-
是的,谢谢我也从另一个答案中得到了同样的建议????一旦我弄清楚如何更改属性的值,我将更改它们
-
您的问题似乎得到了回答,但您的回答是把它变成一个完全不同的问题?
-
是的,实际上我是几周前开始使用 StackOverflow 的,在这种情况下,我应该提出一个新问题吗?
-
我已回滚问题以匹配最初提出的问题和已回答的问题。请改为发布新问题。