En mi caso no funcionaba el limite de texto, el delegado no se estaba enterando cuando introducía un texto en el TextField.
Lo solucioné asociando el delegado al textfield dentro del método viewDidLoad con la siguiente línea (al igual que está el tableView):
itemTextField.delegate= self
Y con esto empezó a funcionar sin problemas.
No necesitas hacer la validación de la conversion a NSString, ya que siempre se puede y esa es la advertencia, dejo el código como quedaría sin el if innecesario.
//MARK: Metodos del Text Field Delegate func textField(textField:UITextField, shouldChangeCharactersInRange range:NSRange, replacementString string:String)->Bool{let tareaString = textField.text!asNSStringlet updateString = tareaString.stringByReplacingCharactersInRange(range,withString: string)return updateString.characters.count<=50}
Duda, si queremos aplicar a diferentes textField un cierto numero de caracteres diferentes a cada uno, ¿como se haria?
Un poco tarde pero: Puedes usar tags, en el inspector hay un campo de tag, siempre esta en 0 puedes ponerle 1,2 o 3 etc....Y puedes hacer un if (textField.tag == 1)
En la linea let updatedString = tareaString.stringByReplacingCharactersInRange(range, withString: String) me aparece un error ... "Editor placeholder in source file" pero no logro entenderlo.
Al final era que en vez de withString : String era withString : string
No se si es porque estaba utilizando la versión anterior de Swift o que, pero me marcaba un error en esta línea, que 'String' no tiene un miembro llamado 'characters'