@@ -93,16 +93,33 @@ class ViewController: ListaCoreDataFunctions, UITableViewDataSource {
93
93
94
94
var alerta = UIAlertController ( title: " Editando item " , message: " Altere o nome do item " , preferredStyle: . Alert)
95
95
let botaoSalvar = UIAlertAction ( title: " Salvar " , style: . Default) { ( action) in
96
- let novoNome = alerta. textFields![ 0 ] as! UITextField
96
+ let novoNome = ( alerta. textFields![ 0 ] as! UITextField ) . text
97
97
98
- // Chama a função para atualizar o nome
99
- self . atualizarItem ( nomeAtual, novoNome: novoNome. text)
98
+ // Verifica se o nome está em branco
99
+ if ( novoNome. isEmpty) {
100
+ self . alertaError ( " Erro ao salvar item " , msg: " O nome do item não pode ficar em branco " )
101
+ }
102
+ // Se o nome atual for igual o nome anterior, não faz nada
103
+ else if ( nomeAtual == novoNome) {
104
+ true
105
+ }
106
+ // Verifica se o novo nome já existe
107
+ else if ( self . itemExistente ( novoNome) ) {
108
+ self . alertaError ( " Erro ao salvar item " , msg: " Já existe um item com o nome: \( novoNome) \n Não é possível salvar dois nomes iguais " )
109
+ }
110
+ // Salva no CoreData
111
+ else {
112
+ // Chama a função para atualizar o nome
113
+ self . atualizarItem ( nomeAtual, novoNome: novoNome)
114
+
115
+ // Racarrega os dados no CoreData
116
+ self . carregaDadosCoreData ( )
117
+
118
+ // Recarrega a TableView
119
+ self . tableView. reloadData ( )
120
+ }
100
121
101
- // Racarrega os dados no CoreData
102
- self . carregaDadosCoreData ( )
103
-
104
- // Recarrega a TableView
105
- self . tableView. reloadData ( )
122
+ self . tableView. setEditing ( false , animated: false )
106
123
}
107
124
108
125
// Essa função é necessária para o textField aparecer no alerta
0 commit comments