Boa noite!
Gostaria de entender o por quê extender o protocolo AddAMealDelegate gerar erro na classe UIViewController?
Type 'ViewController' does not conform to protocol 'AddAMealDelegate'
Obrigado!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa noite!
Gostaria de entender o por quê extender o protocolo AddAMealDelegate gerar erro na classe UIViewController?
Type 'ViewController' does not conform to protocol 'AddAMealDelegate'
Obrigado!
Fala aí Rodrigo, blz?
O AddAMealDelegate é um Protocol (que são análogos a interfaces).
Sendo um protocolo você não extende ele, você o implementa.
Quando você fez seu UIViewController implementar (entrar em conforme com o protocolo) você implementou os métodos declarados na protocolo AddAMealDelegate na classe UIViewController?
Opa, Fernando, beleza e vc?
Eu implementei, igual a realizamos na TableController:
class ViewController: UIViewController, AddAMealDelegate
Como eu poderia utilizar o um protocolo na ViewController?
Blz,
Você precisa declarar os métodos do AddAMealDelegate dentro da sua classe ViewController.
Se estiver com dúvida de como fazer isso, me manda a suas classes ViewController e AddAMealDelegate que te explico diretamente com o seu código.
Vdd! Com a continuidade do curso eu vi isto. Falha minha msm. Com a implementação da função do protocolo na Controller, funcionou!
Obrigado! =)
Opa, precisando é só mandar as dúvidas.
Bons estudos!
Estou tendo um erro com delegate!.add(meal:Meal) . O resto esta funcionando.
https://twitter.com/vero__tietando/status/914145733825179656 ``` insira seu código aqui class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var nameField: UITextField? @IBOutlet var happinessField: UITextField? var delegate:AddAMealDelegate?
var items = [ item(name: "Chocolate Brownie", calories: 10), item(name: "Zuccchini Lazanha", calories: 90), item(name: "Salsicha", calories: 15), item(name: "Pizza", calories: 100), item(name: "Lazanha", calories: 800), ]
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return items.count }
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let row = indexPath.row let item = items[row] let cell = UITableViewCell(style:UITableViewCellStyle.default,reuseIdentifier: nil) cell.textLabel?.text = item.name return cell }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let cell = tableView.cellForRow(at: indexPath) if cell == nil { return } cell!.accessoryType = UITableViewCellAccessoryType.checkmark }
@IBAction func add() {
if nameField == nil || happinessField == nil{ return }
let name:String = nameField!.text! let happiness:Int = Int(happinessField!.text!)!
let meal = Meal(name: name,happiness: happiness) print("eaten: (meal.name) (meal.happiness)!")
if (delegate == nil){ return } delegate!.add(meal:Meal)
if let navigation = self.navigationController{ navigation.popViewController(animated: true) }