目前,我已经制作了一个名为SongNames的自定义类。这是代码:
import Foundation
class songAttributes {
private var _songTitle: String!
private var _songURL: String!
var songTitle: String {
return _songTitle
}
init(songTitle: String, songURL: String) {
_songURL = songURL
_songTitle = songTitle
}
var songURL: String {
return _songURL
}
}
我为此类设置值没有问题。例如,我可能会写:
var songAttribute = songAttributes(songTitle: "That's What I Like", url: "some url")
但是,如果我尝试更改我刚刚创建的变量的属性,比如说:
songAttribute.songTitle = "Locked Out of Heaven"
我收到消息:“错误:songTitle是一个获取属性”
话虽如此,有没有办法搞砸我的SongName类,以便可以更改这些属性,而不仅仅是get-only?
答案 0 :(得分:7)
如果您希望可以设置属性,则不需要使用私有属性进行舞蹈。此外,不应隐式展开属性,因为您在初始化程序中设置它们。
-XX:ParallelGCThreads=<N>
请注意,按照惯例,类和结构名称应以大写字母开头。
答案 1 :(得分:3)
你正在做很多不必要的工作。您有支持所有公共变量的私有变量,并使您的公共变量计算属性。摆脱这一切。这是不必要的复杂性:
import Foundation
class songAttributes {
var songTitle: String
var songURL: String
init(songTitle: String, songURL: String) {
self.songURL = songURL
self.songTitle = songTitle
}
}
默认情况下,属性是可读/写的,因此您无需执行任何特殊操作。
具有以_
前缀开头的私有支持变量的模式在很大程度上是Objective-C的延续,而在Swift中很少需要。