gpt4 book ai didi

swift - 无法分配给属性 : 'xxxx' is a get-only property

转载 作者:行者123 更新时间:2023-12-04 22:28:29 24 4
gpt4 key购买 nike

我正在使用计算属性来获取 books 数组中的最后一本书。但是,我似乎无法使用此属性直接设置书籍的 position 属性,如下所示:

struct Book {
var position: CGPoint?
}

class ViewController: UIViewController {

var books = [Book]()

var currentBook: Book {
return books[books.count - 1]
}

func setup() {
// Compiler Error: Cannot assign to property: 'currentBook' is a get-only property
currentBook.position = CGPoint.zero
}
}

以下工作,但我希望它更具可读性和单行。
books[books.count - 1].position = CGPoint.zero

我可以使用一个函数来返回当前的书,但使用一个属性会更清晰。还有其他方法吗?

最佳答案

发生错误是因为您没有告诉编译器在 currentBook 的值发生变化时要做什么。编译器假定它是不可变的。

只需添加一个 setter,以便编译器知道在设置值时要做什么:

var currentBook: Book {
get { return books[books.count - 1] }
set { books[books.count - 1] = newValue }
}

或者,考虑使用 books.last! :
books.last!.position = CGPoint.zero

关于swift - 无法分配给属性 : 'xxxx' is a get-only property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44100951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com