在Swift中的类参数上使用类函数
我正在尝试使用一个类func来设置一本书的标题,但是它不起作用。请参阅下面我的代码:在Swift中的类参数上使用类函数,swift,class,Swift,Class,我正在尝试使用一个类func来设置一本书的标题,但是它不起作用。请参阅下面我的代码: import Foundation class Book: NSObject { var bookTitle: String = "" var bookPage: String = "" override init(){ print("Book object has been created") } class func setPageTitl
import Foundation
class Book: NSObject {
var bookTitle: String = ""
var bookPage: String = ""
override init(){
print("Book object has been created")
}
class func setPageTitle(title: String)
{
bookTitle = title //I get the error here
}
}
我想强制在创建图书对象时设置页面标题
有人能帮我吗?设置任何必需的属性/属性的最佳方法是初始化它。因此,请尝试以这种方式对类进行编码:
class Book: NSObject {
var bookTitle: String = ""
var bookPage: String = ""
init(title:String) {
bookTitle = title
print("Book object has been created")
}
}
几点注意:
setPageTitle
函数中声明了class
。这毫无意义当您没有实例时,尝试设置实例变量。将
书名设置为静态。你到底想干什么?为什么setPageTitle
是一个类函数?为什么不将bookTitle
公开?如果希望在init上设置标题,为什么要提供默认值?如果是NSObject
子类,可能应该调用super.init()
。或者,正如你所说,根本不要把它变成NSObject
子类。@Rob,我同意。我的回答是针对这个问题的。如果您将任何内容子类化,则应调用super
,除非有特定的理由不这样做。