У меня есть три разных текстовых поля, в которых мне нужно использовать 3 разных метода «textViewDidChange». Объединение их в одну функцию не работает для меня. Я - это три разных действия, которые могут влиять друг на друга. Поэтому я пытаюсь сделать три различные функции, как показано ниже. Но я получаю ошибку «недопустимое повторное объявление». Как я могу это понять?Недопустимое переопределение «textViewDidChange» Swift
func textViewDidChange(messageTxt1: UITextView) {
var len = count(messageTxt.text.utf16)
var diff = 90 - len
if diff < 0 {
charsLbl.textColor = UIColor.redColor()
} else {
charsLbl.textColor = UIColor.blackColor()
}
charsLbl.text = "\(diff) chars left"
}
func textViewDidChange (messageTxt2: UITextView) {
refreshResults()
var len2 = count(messageTxt2.text.utf16)
if len2 > 3 {
println("search")
}
else
{
resultsTable.hidden = true
}
var diff2 = 30 - len2
if diff2 < 0 {
charsLbl2.textColor = UIColor.redColor()
} else {
charsLbl2.textColor = UIColor.blackColor()
}
charsLbl2.text = "\(diff2) chars left"
}
func textViewDidChange (messageTxt3: UITextView) {
var len3 = count(messageTxt3.text.utf16)
var diff3 = 30 - len3
if diff3 < 0 {
charsLbl3.textColor = UIColor.redColor()
} else {
charsLbl3.textColor = UIColor.blackColor()
}
charsLbl3.text = "\(diff3) chars left"
}
Зачем использовать тег, когда вы можете напрямую сравнивать объекты? 'messageTxt === textView1' делает то, что вы ожидаете. – Fantattitude
@Fantattitude вы должны поддерживать ссылку для этого. – iDhaval
У меня больше смысла держать ссылки, это меньше подвержено ошибкам, чем просто использовать тег с «волшебными» числами. – Fantattitude