Persistencia en dispositivos móviles - iOS
  • Introduction
  • Persistencia básica
    • El sistema de archivos
    • Serialización de clases
    • Property Lists
    • Preferencias de usuario
    • Ejercicios
  • SQLite
    • Introducción a SQLite en iOS
    • El API básico de SQLite
    • Frameworks de terceros
    • Ejercicios
  • ¡Hola Core Data!. Una aplicación de ejemplo
    • Introducción a Core Data
    • El stack de Core Data
    • Las entidades
    • Recuperar los datos
  • Modelos de datos en Core Data
    • Crear modelos
    • Entidades con clases propias
    • CRUD
    • Ejercicios
  • Más sobre modelos de datos
    • Tipos de datos transformables
    • Validaciones
    • El ciclo de vida de los objetos gestionados
    • Deshacer y rehacer operaciones
    • Ejercicios
  • Búsquedas en Core Data
    • Predicados
    • Ordenación
    • Ejercicios
  • Tablas en Core Data
    • El fetched results controller
    • Inicializar el "fetched results controller"
    • Mostrar los datos en la tabla
    • Refrescar la tabla
    • Secciones de tabla automáticas
    • Ejercicios
  • Migraciones de datos
    • Qué son las migraciones de datos
    • Versiones del modelo de datos
    • Migraciones ligeras
    • Migraciones pesadas
    • Ejercicios
    • Apéndice: migraciones en iOS<=9
  • Contextos múltiples
    • Múltiples contextos para trabajos en background
    • Comunicación entre contextos
    • Contextos anidados
    • Ejercicios
  • Persistencia como servicio
    • Backend as a Service
    • Gestión de usuarios en Firebase
    • Persistencia en Firebase
    • Ejercicios
  • Arquitecturas de aplicaciones en iOS
    • Model/View/Controller
    • Model/View/Presenter
    • Model/View/ViewModel
    • VIPER
    • Ejercicios parte I
    • Ejercicios parte II
    • Ejercicios parte III
Powered by GitBook
On this page

Was this helpful?

  1. Arquitecturas de aplicaciones en iOS

Ejercicios parte I

En la aplicación de Notas que venimos desarrollando en la asignatura, el view controller ListaNotasController tiene demasiadas funcionalidades.

(4 puntos) Separa los métodos que implementan el datasource de la tabla en una clase aparte:

  • Crea la clase ListaNotasDatasource:

    • Añádele un método setLista() que reciba un array de notas ([Nota]) como parámetro y se lo guarde en una propiedad de la clase llamada listaNotas

    • Llévate a esta clase el código de los métodos que implementan el datasource

  • En el ListaNotasViewController

    • Añade una propiedad ds, de tipo ListaNotasDataSource

    • En el viewDidLoad, haz que el ds sea el datasource de la tabla

    self.tableView.dataSource = self.ds
    • En el viewWillAppear, cada vez que obtengas la lista de notas con el fetch request, pásaselas al ds, con ds.setLista()

    • La propiedad listaNotas del ListaNotasViewController ya sobra, porque la lista ahora la maneja el datasource

(1 punto) En el ListaNotasDatasource separa el código que se encarga de rellenar los campos de la celda y encapsúlalo en una clase aparte igual que se muestra en las transparencias

PreviousVIPERNextEjercicios parte II

Last updated 6 years ago

Was this helpful?