Olá, Já programo em Android com Java há algum tempo e agora decidi me aventurar no swift e estou achando bem bacana embora o curso esteja com algumas coisinhas desatualizadas, valeria a pena uma revisada... Porém enquanto estava assistindo ao vídeo 4 da aula 6 ao tentar reproduzir o código que o Guilherme Silveira faz durante a aula não tive sucesso. Talvez por incompatibilidade das versões do Swift do curso com a que tenho aqui com o xcode.
O problema é que ao efetuar mudar as variáveis dos elementos da interface para que possam receber Optional e fazer uma validação simples, como no exemplo do vídeo eu continuo recebendo um Optional ao invés de receber uma String.
Como nesse trecho de código abaixo... Perceba que eu tenho o problema na variável hapiness
pois preciso que ela seja um Integer
e não uma String mas o método toInt()
não existe mais. O próprio xcode então diz para eu utilizar o Int()
no lugar do toInt()
@IBOutlet var nameField:UITextField?
@IBOutlet var hapinessField:UITextField?
@IBAction func add() {
if nameField == nil || hapinessField == nil {
return
}
let name = nameField!.text
let hapiness = Int(hapinessField!.text)
em relação a linha let hapiness = Int(hapinessField!.text)
estou recebendo o seguinte erro:
Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?
Perceba que se eu forçar com !
eu consigo compilar sem problemas, porém gostaria de saber por qual motivo isso está ocorrendo pois sei que forçar a barra aqui não seria legal.
Seria algum problema do casting para integer? ou algo mudou nas versões do Swift? Como posso saber qual versão do swift estou utilizando aqui no momento? Utilizo o xcode 7.3.1 aqui.
Obrigado.