有没有办法创建一个我可以改变的自定义类?

时间:2017-09-12 13:45:17

标签: ios swift properties

目前,我已经制作了一个名为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?

2 个答案:

答案 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中很少需要。