SQLite con UITableView (Parte II)

Share


(Los fuentes del ejemplo están disponibles en el pie del artículo).

En el artículo anterior ya dejamos preparado el fichero de recursos con nuestro Navigation Controller que se encargará de mostrarnos el navegador de vistas (en principio solo tenemos una), también creamos nuestro fichero de base de datos, y nuestra clase DataViewController que será la encargada de gestionar y mostrar dichos datos. La conexión con la base de datos se realizará en nuestra clase delegada de la aplicación.

CLASE INMUEBLE

Ahora vamos a crearnos una nueva clase (Inmueble), que nos servirá de estructura para el tratamiento de nuestros registros de la base de datos. Será una clase sencilla (NSObject) donde incluiremos como miembros de la misma los distintos campos de nuestra tabla. Estos miembros serán del mismo tipo que hayamos definido en la creación de nuestra tabla y para nuestro caso hemos creado 3 campos (dirección, teléfono y comentarios).

@interface Inmueble : NSObject

{

sqlite3 *database;

NSInteger primaryKey;

NSString *address;

NSString *phone;

NSString *comment;

}

El miembro database veremos que será utilizado para recibir la base de datos que en nuestra clase delegada de la aplicación crearemos y abriremos. Implementaremos los métodos set y get de dichos miembros para consultar y asignar valores a nuestros campos. (Lógicamente el campo primaryKey no tiene método set, ya que es el campo autonumerico identificador).

- (NSInteger)primaryKey

- (NSString *)address

- (void)setAddress:(NSString *)aString

- (NSString *)phone

- (void)setPhone:(NSString *)aString

- (NSString *)comment

- (void)setComment:(NSString *)aString

Para terminar con nuestra clase Inmueble, necesitamos un método que reciba la base de datos de la que antes hemos hablado, y realice una consulta SQL a nuestra tabla. En este método solo obtendremos el campo dirección (address) de nuestra tabla, que será el que mostremos en nuestro TableView.

- (id)initWithPrimaryKey:(NSInteger)pk database:(sqlite3 *)db

Recordemos la guía de referencia de SQLite que os dejé, pues en ella veremos el cometido de los métodos sqlite3_prepare_v2, sqlite3_bind_int y sqlite3_step que usaremos en el método initWithPrimaryKey para ir recogiendo el valor de nuestro campo address.

CLASE DATAVIEWCONTROLLER

Finalizamos la implementación de las clases de nuestro proyecto con la clase DataViewController, que será la encargada de mostrar los datos en el TableView. Lo único destacable en esta clase, además del método loadView son los método de UITableViewDataSource llamados numberOfSectionsInTableView, numberOfRowsInSection y cellForRowAtIndexPath los cuales ya explicábamos en anteriores artículos (UITableView con índices).

CLASE DELEGADA DE NUESTRA APLICACIÓN

Como punto de entrada de nuestra aplicación, nuestra clase delegada será la encargada de preparar la base de datos, rellenar los datos apoyándonos en nuestra clase Inmueble y que nuestra clase DataViewController se encargue de rellenar en la vista. Aquí volvemos a encontrarnos con las funciones de SQLite para abrir nuestra base de datos, ejecutar consultas, etc.

Aplicación de ejemplo: buscapisos.zip

banner ad

15 Responses to “SQLite con UITableView (Parte II)”

  1. gabriel says:

    Hola, No me funcionan los botones y me tira una excepcion en tiempo de ejecucion.

  2. Antonio says:

    Hola Gabriel

    El ejemplo estaba sin terminar, ya que en esta segunda entrega tan solo pretendemos mostrar que la base de datos sea cargada en nuestro tableview. En los próximos días publicaré más artículos sobre el mismo ejemplo hasta llegar a terminarlo.

    Gracias.

  3. Gabriel says:

    Disculpa la ansiedad, tendrás algún código de fuente donde explique como retraer el teclado del textField ya que lo implemente viendo un video pero no funciono.
    Gracias, felicitaciones por la página esta muy buena.

  4. Antonio says:

    Cuando dices retraer te refieres a la aparición del mismo para empezar a escribir?

  5. Gabriel says:

    exactamente!

  6. Gabriel says:

    NO me confundi. Al presionar done o return no responde, quiero que desaparezca el teclado para poder seguir trabajando en el view.

  7. Antonio says:

    Gabriel, prueba esto en tu clase controladora

    - (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
    // Cuando el usuario presiona Return, el teclado debe desaparecer
    return YES;
    }

    Si no funciona, publicaremos un artículo de forma conjunta para explicar como se hace.

  8. gabriel says:

    Hola, con respecto al teclado ese metodo es el que buscaba, pero tengo problemas con el simulador y hay veces compila sin errores y la pantalla queda completamente en negro y luego me tira un cartel para ignorar o reportar(version beta 5), no entiendo a que se debe. Por otro lado hice un pequeno ejemplo que accede a una basedatos y muestra en una etiqueta el campo de un registro de la tabla, pero al compilar la aplicacion me tira error 1. Me gustaria si es posible subirte ese ejemplo para que me digas cual es error. Tambien me falta algo de concepto sobre los controles no entiendo cual es la diferencia entre un View y su controlador, a igual que el tabar y otros. Gracias.

  9. Antonio says:

    Hola Gabriel

    Enviamelo a antonio@iphonesoftware.es. Con respecto al error ese, intenta antes de compilar a limpiar la cache de datos del compilador, dejando pulsado el botón de build.

    Con respecto a tus dudas sobre los controles, te recomiendo que lo transmitas en el foro, ya que voy a utilizarlo como guia a la hora de publicar artículos.

    Una última cosa, sobre la diferencia entre el View y su controlador es conveniente que repases este artículo http://es.wikipedia.org/wiki/Modelo_Vista_Controlador donde lo explica muy bien.

    Te felicito por tu participación.

  10. gabriel says:

    Hola, con respecto al codigo que te pase pude solucionar el tema del error 1, era porque estaba incluyendo mal la libreria de sqlite(era un enlace o algo parecido).
    Queria consultarte en esta oportunidad como convertir un string obtenido por medio de sqlite_column(de un campo char de base de datos) a un NSString para ser mostrado en un label.
    Gracias.

  11. Antonio says:

    Hola Gabriel

    Me alegro de que se solucionase tu error.

    La forma de recuperar un campo de texto es de la siguiente manera :NSString *campo = sqlite3_column_text(consulta, nCampo) donde nCampo es la columna que queremos recuperar de nuestra consulta.

    Te recomiendo que consultes la web de referencia de SQLite3 que ya publicamos en nuestro anterior artículo http://www.iphonesoftware.es/sqlite-en-tu-iphone

    Igualmente aprovecho para invitarte a que realices consultas de este tipo en el foro ya que es la mejor manera de que todos participemos.

    Un saludo.

  12. gabriel says:

    OK gracias! la proxima va al foro.

  13. Clapp! says:

    Me gustaba mas cuando lo hacíais vosotros en lugar de copiarlotraducirlo de icodeblog.com

  14. Clapp! says:

    Me retracto de mi anterior comentario, solo vi el título por encima, ya veo que cambiáis bastantes cosas. Me he pasado de listo xD

  15. Antonio says:

    Se aceptan las disculpas…

Leave a Reply

  • Buy Cheapest buy viagra from canada Now Best Prices. Order Cheap Meds Without Rx.
  • cialis next day Online Without Prescription Free Viagra Pills! Best Online.
  • Buy Cheap effects of viagra Online Pharmacy At The Best Price! Low Prices.
  • Buy Cheap viagra store in canada Now Cheap Prescription Drugs. Top Online Pharmacy.
  • Buy Cheap viagra cialis canadian pharmacy Now Best Drugstore. Drugs, Health And Beauty.
  • Buy Cheap viagra ads Now No Prescription Needed. WorldWide Shipping.
  • Buy Cheap order sublingual cialis Now Best Internet. Internet Prices For order sublingual cialis!
  • Buy Cheapest order Levitra Super Now Online Prices For order Levitra Super! Low Prices.
  • Buy Cheap best price viagra Online Pharmacy Store. 24/Online Pharmacy.
  • Buy Cheapest cialis precautions Now Best Online. Order Cheap Meds Without Rx.
  • Buy Cheap cialis soft gel india Now Drug Store Without A Prescription. Low Prices.
  • Buy Cheap canadian cialis Now WorldWide Shipping. Cheap Prescription Drugs.
  • Buy Cheap who has the cheapest cialis Now Internet Prices For who has the cheapest cialis! Best Online.
  • Buy Cheapest cialis from mexico Online No Prescription Needed. Low Prices.
  • Buy Cheapest viagra ad Online WorldWide Shipping. Pharmacy Store.
  • Buy Cheap recreational sex levitra Now Best Drugstore. Discount Pharmacy Online.
  • Buy Cheapest generic cialis Online Guaranteed Shipping. Free Viagra Pills!
  • Buy Cheapest buy sublingual viagra online Now Cheap Pharmacy Online. Best Internet.
  • Buy Cheap ciallis or viagra Now Buy Medications Online. WorldWide Shipping.
  • Buy Cheapest viagra amsterdam Now Cheap Prescription Drugs. Best Drugstore.
  • Buy Cheapest gernic viagra Online Internet Prices For gernic viagra! Best Online.
  • Buy Cheapest uk levitra Online Best Internet. Buy Medications Online.
  • Buy Cheap buy levitra on line Now Online Medical Shop. Online Prices For buy levitra on line!
  • Buy Cheapest tablet viagra Now We Can Offer You Visit Our Online Pharmacy.
  • Buy Cheap cialis women Now Drugs, Health And Beauty. Top Online Pharmacy.
  • Buy Cheap viagra and alternatives Online Best Drugstore. Internet Prices For viagra and alternatives!
  • Buy Cheap gel viagra Now WorldWide Shipping. Drugs, Health And Beauty.
  • Buy Cheap buy generic levitra Online Best Online. Buy Medications Online.
  • Buy Cheap buying cialis online Online 24/Internet)(safe Pharmacy. Best Prices.
  • Buy Cheap cialis buy Online Cheap Pharmacy Online. Top Online Pharmacy.
  • Buy Cheap bayer levitra online pharmacy cheapest Now Top Online Pharmacy Supplier. Best Drugstore.
  • Buy Cheapest cialis viagra packs Now Low Prices. Safe And Secure Payment System.
  • Buy Cheapest cialis levia and viagra Online Best Online. Online Medical Shop.
  • Buy Cheap order levitra Now Cheap Online Pharmacy. Guaranteed Shipping.
  • Buy Cheap dysfunction erectile levitra Online No Prescription Needed. Best Internet.
  • Buy Cheap maximize effects of levitra Online Guaranteed Shipping. Free Viagra Pills!
  • Buy Cheap approval cialis Online Best Online. The Largest Internet Pharmacy.
  • Get generic cheap cialis Without Prescription Consultation. 24/Online Pharmacy.
  • Buy Cheap side affects of viagra Now Online Medical Shop. Buy Medications Online.
  • Buy Cheap daily dose cialis availability Now Best Prices. Cheap Meds Without Prescription.
  • Buy Cheapest discount brand viagra Online 24/Online Pharmacy. Low Prices.
  • Buy Cheap best results for taking cialis Online Pharmacy Store. Special Prices For best results for taking cialis!
  • Buy Cheap cialis generique Now Guaranteed Shipping. No Prescription Needed.
  • Buy Cheapest levitra consultation Now Online Medical Shop. Guaranteed Shipping.
  • Buy Cheapest vardenafil safe levitra alternative Now Pharmacy Store. Internet Prices For vardenafil safe levitra alternative!
  • Buy Cheapest cialis online generic Online Cheap Prescription Drugs. Low Prices.
  • viagra online in canada Online Without Prescription Best Prices. WorldWide Shipping.
  • Buy Cheap generic online viagra Now Online Medical Shop. Discount Pharmacy Online.
  • Buy Cheap viagra effect on women Now Order Cheap Meds Without Rx. Best Internet.
  • Buy Cheap cialis where Now Best Internet. Pharmacy At The Best Price!
  • Buy Cheapest levitra result Now Pharmacy Store. Pharmacy At The Best Price!
  • Buy Cheap cialis canada prescription Online Cheap Online Pharmacy. WorldWide Shipping.
  • Buy Cheap order viagra online Now Top Online Pharmacy. 24/Online Pharmacy.
  • Buy Cheap drug for impotence levitra Online Pharmacy Store. Drugs, Health And Beauty.
  • Buy Cheapest female viagra sildenafil Online Best Prices. Cheap Prescription Drugs.
  • Buy Cheap method levitra Now No Prescription Needed. Cheap Online Pharmacy.
  • Buy Cheapest viagra cheapest Online Low Prices. Discount Pharmacy Online.
  • Buy Cheap women cialis Now 100% Satisfaction Guaranteed. Low Prices.
  • Buy Cheap cialis free shipping Online Pharmacy Store. Discount Online Pharmacy.
  • Buy Cheap discount cialis Now Free Viagra Pills! Pharmacy At The Best Price!
  • Buy Cheapest can woman take cialis Online 24/Online Pharmacy. Best Online.
  • Buy Cheapest levitra versus cialis Now Best Prices. 24/Internet)(safe Pharmacy.
  • Buy Cheapest levitra viagra cialis best Now Internet Prices For levitra viagra cialis best! Pharmacy Store.
  • Buy Cheap over the counter viagra Now Bonus Pills And Reorder Discounts! Low Prices.
  • sildenafil cialis generico Online Without Prescription Low Prices. Online Medical Shop.
  • Buy Cheap purchase cialis online Now Pharmacy Store. Order Cheap Meds Without Rx.
  • Buy Cheapest sample pak levitra Online Best Internet. Cheap Prescription Drugs.
  • Buy Cheap buy online cialis Online Top Online Pharmacy. Best Drugstore.
  • Buy Cheapest cialis levitra Online Best Drugstore. Guaranteed Shipping.
  • Buy Cheap soft viagra fast delivery Now 100% Satisfaction Guaranteed. Low Prices.
  • Buy Cheapest order 50mg viagra Now Pharmacy Store. Online Prices For order 50mg viagra!
  • experience with cialis Online Without Prescription Best Drugstore. Best Prices.
  • Buy Cheapest women take viagra Online Pharmacy At The Best Price! Low Prices.
  • Buy Cheap viagra effects Now Pharmacy At The Best Price! Best Internet.
  • Buy Cheapest viagra pennis enlargement Now Cheap Pharmacy Online. WorldWide Shipping.
  • Buy Cheap discount viagra generic Now Low Prices. All Medications Are Certificated!
  • Buy Cheap buy cheapest viagra online Now WorldWide Shipping. Guaranteed Shipping.
  • Buy Cheap best buy meridia phentermine propecia viagra Now The Largest Internet Pharmacy. Best Prices.
  • Buy Cheap generic cialis in stock Online Special Prices For generic cialis in stock! Best Internet.
  • Buy Cheap levitra sex pill Online Cheap Prescription Drugs. Best Drugstore.
  • Buy Cheap cialis for overseas Now Top Online Pharmacy. Discount Pharmacy Online.
  • Buy Cheapest cialis offers Online Cheap Prescription Drugs. Best Online.
  • Buy Cheapest non prescription type cialis Now Best Drugstore. Cheap Online Pharmacy.
  • Buy Cheapest erection viagra Now Best Drugstore. Internet Prices For erection viagra!
  • Buy Cheap cialis generic purchase Online Best Online. Order Cheap Meds Without Rx.
  • Buy Cheapest cialis in uae Now Best Prices. Buy Medications Online.
  • Buy Cheapest levitra sperm pills Online Best Online. Special Prices For levitra sperm pills!
  • Buy Cheapest order female viagra Online Pharmacy Store. Top Online Pharmacy.
  • Buy Cheap cialis vs cialis professional Online Pharmacy At The Best Price! Best Drugstore.
  • Buy Cheapest get viagra in canada Online Free Viagra Pills! Pharmacy Store.
  • levitra tabs Online Without Prescription Low Prices. Free Viagra Pills!
  • Buy Cheapest herbal womans viagra Now 24/Online Pharmacy. Free Viagra Pills!
  • Buy Cheapest cialis wholesale Now Discount Online Pharmacy. Best Prices.
  • Buy Cheapest buying online viagra Now Cheap Pharmacy Online. Best Drugstore.
  • Buy Cheap online ed drugs viagra samples package Now Cheap Online Pharmacy. Top Online Pharmacy.
  • Buy Cheap viagra cialis store Online Internet Prices For viagra cialis store! Best Internet.
  • Buy Cheap levitra half life Now Free Viagra Pills! Top Online Pharmacy.
  • Buy Cheap viagra plus cialis Now Top Online Pharmacy. Drugs, Health And Beauty.
  • Buy Cheap ordering viagra Now Best Prices. Special Prices For ordering viagra!
  • Buy Cheapest viagra cialis levitra comparison Online Best Prices. No Prescription Needed.