У меня есть массив (String,Bool)
кортежей:Странного Bool из управления пользовательского интерфейса
var names : [(name:String, important:Bool)] = [("Paul",true), ("Peter",false)]
У меня также есть UISwitch
контроля:
@IBOutlet weak var importantSwitch: UISwitch!
Я хочу добавить к массиву, используя состояние переключателя для определения Bool
.
Следующая делает не работы:
names.append(name: "whatever", important: importantSwitch.on)
Вопрос сообщает XCode является "тип T не соответствует протоколу IntegerLiteralConvertible".
Они делают работу:
let i : Bool = importantSwitch.on
names.append(name: "whatever", important: i)
или
names.append(name: "whatever", important: importantSwitch.on==true)
Мой вопрос, по сути, является, почему?
Массивы с кортежами по-прежнему странны в Swift, см. Http://stackoverflow.com/questions/24539679/how-do-i-create-an-array-of-tuples для аналогичного примера. Определение псевдонима типа также может помочь здесь. (Это не отвечает на вопрос «почему».) –
@MartinR Хорошо, я думаю, что захватил «почему». – matt