Swift 3 - Отсутствует метка аргумента '' в вызове

Я составляю базовый список дел.

Я создал файл Swift, предназначенный для добавления элементов в список.

import UIKit

class AddKey: UIViewController {
    @IBOutlet weak var keyValue: UILabel!
    @IBOutlet weak var keyDescription: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "dismissAndSaveKey" {
            let key = Key(description: keyDescription.text!)
            KeyStore.sharedInstance.add(key) // I get an ERROR at this line
        }
    }
}

Ошибка:

KeyStore.sharedInstance.add(key)", я получаю "Отсутствует метка аргумента" ключ:" в вызове

Теперь в KeyStore есть член

var keys: [Key] = []

И sharedInstance создает статический экземпляр класса

Более того, метод add определен

func add(key: Key) {
    keys.append(key)
}

Зачем мне указывать тип ключа, чтобы передать ключ методу добавления? Более того, если я укажу тип ключа, компилятор жалуется, что он ожидал тип Key, а не Key.type.

если я напишу

KeyStore.sharedInstance.add(key)

as

KeyStore.sharedInstance.keys.append(key)

ошибка исчезла и все работает.


person user227837    schedule 12.09.2016    source источник
comment
Метки аргументов являются обязательными в Swift 3. Вы можете добавить _ перед меткой, если хотите игнорировать ее.   -  person Eric Aya    schedule 12.09.2016