我有疑问。来自ruby,我已经习惯了一种语法,我可以做到以下几点。
client = NewsAPI::Client.new(
url: 'https://www.newshost.com/api/',
http_token: '1234567890',
)
newsEntry = client.news.new(
title: 'Some title',
text: 'Some text',
);
newsEntry.save
或者
news = client.news.all
这将为我提供所有可用新闻的列表。
我尝试使用Swift类和实例方法构建类似的东西。这适用于实例方法,但我不知道如何实现/访问类功能。像“列表”或“搜索”。 我创建了一个在XCode游乐场中工作的小例子。
所以基本上我有一个客户端类,它应该为我提供了几个“对象”。在这种情况下,新闻“对象”。这个对象应该为我提供类似于上面的ruby代码的东西。请参阅下面的代码。
我的问题: 一世) 我可以简单地将这些函数添加到我的基类中,并在我的子类中覆盖它们。这会给我同样的行为。即使我混淆了类和实例方法。 (我猜)从“最佳实践/设计”的角度来看,这是否可以?
II) 是否有更清洁/更好的方式来实现我想要的“快速方式”?
非常感谢 约翰内斯
class Client{
let token: String
public init(token: String) {
self.token = token
}
public var newsObject: News {
return News()
}
}
class Ressource {
class func list() {
print("this is a news list")
}
class func search() {
print("this is a news search result")
}
func start() {
print("Hello")
}
}
class News: Ressource{
override func start() {
print("Hello from Sub Class")
}
}
let news = Client(token: "123456").newsObject
news.start()
答案 0 :(得分:1)
您只需要使用类类型本身来访问类方法。您无法通过实例访问它们,因为类方法的重点是它们与类型的实例无关。
您可以访问列表/搜索类方法,如下所示:
News.list()
News.search()