2016-06-18 2 views
-2

Мне нужно выбрать тип для хранения объекта. Но мне нужна помощь.Правильный тип объекта в iOS swift

Мой объект должен иметь 3 свойство:

  • маленького
  • среда
  • макс

Каждые из них будет держать URL-адрес

Кроме того, мой объект должен Предпочтительным свойство. Который будет назначен как малый, средний или макс. И Preferred должен возвращать URL из выбранного свойства.

Например, если я назначу:

small = url1 
medium = url2 
max = url3 

// Вот и у меня есть глобальный класс настроек. И в этом я должен выбрать возврат из предпочтительных - максимальных URL-адресов. И для каждого 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

Создавая структуру или класс, который делает именно то, где это ваша проблема? – luk2302

+0

Я добавил пункт о глобальных настройках, вот проблема –

+0

Последнее редактирование не имеет смысла. Почему вы не можете использовать класс? Что ты пытаешься сделать? – chrs

ответ

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 
+0

привет, я добавил образец перечисления, пожалуйста, проверьте мой вопрос –

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... 
Смежные вопросы