2
respostas

[Dúvida] Erro ao executar o código

No curso "IOS - Construindo seu primeiro aplicativo", Aula 4, Atividade 2, eu criei a função configurarLayout exatamente como está na aula, porém na linha: tituloQuestaoLabel.numberOfLines = 0 está gerando um erro quando eu executo o código.

A função está assim:

func configurarLayout() { tituloQuestaoLabel.numberOfLines = 0 tituloQuestaoLabel.textAlignment = .center navigationItem.hidesBackButton = true for botao in botoesRespostas { botao.layer.cornerRadius = 12.0 } }

E o erro é:

iQuiz/QuestaoViewController.swift:29: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

O que pode ser?

2 respostas

Oi

O erro "Unexpectedly found nil while implicitly unwrapping an Optional value" ocorre quando você tenta acessar um valor opcional que está definido como nulo. Neste caso, o erro está sendo gerado na linha "tituloQuestaoLabel.numberOfLines = 0".

Isso indica que o objeto "tituloQuestaoLabel" está sendo tratado como nulo quando você tenta acessar a propriedade "numberOfLines".

Uma solução possível para resolver esse problema é verificar se o objeto "tituloQuestaoLabel" foi inicializado corretamente antes de tentar acessar suas propriedades. Tenha certeza de que você conectou a saída (outlet) corretamente a partir do seu storyboard ou arquivo XIB para a etiqueta.

Outra possibilidade é que o objeto "tituloQuestaoLabel" tenha sido inicializado, mas a propriedade "numberOfLines" pode não estar configurada corretamente no storyboard ou arquivo XIB. Verifique se você definiu essa propriedade com o valor desejado.

Se nenhuma dessas soluções resolver o problema, seria aconselhável verificar se há algum outro trecho de código que possa estar afetando a inicialização ou configuração do objeto "tituloQuestaoLabel".

Obrigada pelo retorno... Vou colocar aqui o código dessa view controller, para ver se o erro está nela.

class QuestaoViewController: UIViewController {
    
    var pontuacaco = 0
    var numeroQuestao = 0
    
    @IBOutlet weak var tituloQuestaoLabel: UILabel!
    @IBOutlet var botoesRespostas: [UIButton]!
    
    @IBAction func respostaBotaoPressionado(_ sender: UIButton) {
        print(sender.tag)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        configurarLayout()
        configurarQuestao()
    }
    
    func configurarLayout() {
        tituloQuestaoLabel.numberOfLines = 0
        tituloQuestaoLabel.textAlignment = .center
        navigationItem.hidesBackButton = true
        for botao in botoesRespostas {
            botao.layer.cornerRadius = 12.0
        }
    }
    
    func configurarQuestao() {
        tituloQuestaoLabel.text = questoes[numeroQuestao].titulo

    }

Aparentemente foi inicializado corretamente e está devidamente conectado ao outlet... será por ser um UILabel?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software