我需要选择一个用于保持对象的类型。但我需要一些帮助。
我的对象应该有3个属性:
每个人都会持有网址
我的对象也应该有Preferred属性。哪个将被指定为小型,中型或最大型。并且Preferred应该从所选属性返回URL。
例如,如果我指定:
small = url1
medium = url2
max = url3
//这里我也有全局设置类。在那里我应该选择从首选 - 最大网址返回。并且对于每个insnanse首选应返回最大值。
Class.preferred = Type.max //something like that
print(instanse.preferred) //printed url3
我如何存档?我不能在这里使用Class,但我不确定我可以使用枚举存档吗?
不起作用的样本
enum VideoType: String {
case min
case med
case max
}
class VideoInstanse {
var min: VideoType
var med: VideoType
var max: VideoType
static var preferred:VideoType!
init(dictionary: [Int : String]) {
min.rawValue = dictionary[1] //error
med.rawValue = dictionary[2]
max.rawValue = dictionary[3]
}
}
答案 0 :(得分:1)
您可能有兴趣在这种情况下使用枚举(如果我理解您的问题)
enum Endpoint: String {
var baseURLString: String {
get {
return "https://myurl.com?size=".appending(self.rawValue)
}
}
case small
case medium
case max
var url: URL? {
return URL(string: baseURLString)
}
}
print(Endpoint.small.url!)
print(Endpoint.medium.url!)
print(Endpoint.max.url!)
输出结果为:
https://myurl.com?size=small
https://myurl.com?size=medium
https://myurl.com?size=max
答案 1 :(得分:0)
结构,也许?
struct Size {
var small : NSURL = NSURL()
var medium : NSURL = NSURL()
var large : NSURL = NSURL()
}
class VideoInstanse {
var properties = Size()
func someMethod() {
self.properties.small = url1
self.properties.medium = url2
self.properties.large = url3
}
}
你也可以在课外的其他地方使用它:
var instance = VideoInstance()
instance.properties.small...
// and so on...