2016-11-07 2 views
0
var LocalFile = "xxx.json" 
var Delta = false 
var priority = DISPATCH_QUEUE_PRIORITY_DEFAULT 

init(){ 
    priority = DISPATCH_QUEUE_PRIORITY_HIGH 
} 

init(_:Bool){ 
    Delta = true 
    priority = DISPATCH_QUEUE_PRIORITY_LOW 
} 

func getList(postData: Dictionary<String, String>){ 

    let localdata = readfile(LocalFile) 
    if (localdata != "" && Delta == false){} 
    else{ 
    } 
} 

Я просто начинающий для изучения Свифта. Когда я просматриваю этот класс, мне интересно, почему этот класс содержит 2 init()? Как это работает с «приоритетом»?Что нового между init() и init (_: bool)

+0

Этот второй 'init' не имеет смысла. Параметр игнорируется (и на самом деле он не может быть доступен вообще в реализации. – rmaddy

ответ

0
init(){ 
    priority = DISPATCH_QUEUE_PRIORITY_HIGH 
} 
  1. Это default конструктор. Это означает, что ваша переменная экземпляра будет инициализирована по умолчанию с их соответствующими значениями.
  2. Здесь приоритет HIGH (DISPATCH_QUEUE_PRIORITY_HIGH)

    init(_:Bool){ 
        Delta = true 
        priority = DISPATCH_QUEUE_PRIORITY_LOW 
    } 
    

1. Это parameterised, конструктор. Это означает, что вы инициализируете Delta, пока вы создаете объект этого класса.

2. Здесь приоритет LOW (DISPATCH_QUEUE_PRIORITY_LOW)

0

Во-первых, он должен быть localFile и delta. (извещение о случае).

Во-вторых, это ужасно написанный API. Я предполагаю, что создателю нужны два разных инициализатора: один с высоким приоритетом и один с низким приоритетом, который инициализирует delta.

Смежные вопросы