Curs de programació d’iOS Novembre de 2011 Organitza.

Slides:



Advertisements
Presentaciones similares
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Moncada, 9 de Julio de 2010 Memory Management.
Advertisements

Curso de Iniciación a la Programación del iPhone SDK con Objective-C Datos en la aplicación Moncada, 9 de Julio de 2010.
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Entrada de texto y Web Views Moncada, 9 de Julio de 2010.
¿Para qué (nos) sirven las encuestas docentes? Miguel Valero.
INTRODUCCIÓN A AJAX. ¿Qué es AJAX? Acrónimo de Asynchronous JavaScript And XML No es ninguna tecnología, ni lenguaje de programación. Es una técnica de.
COMPARATIVA CLIENT/SERVIDOR AMB SOCKETS C vs. JAVA MANEL DOMÍNGUEZ SERRA GERARD ROCA MALLOFRÉ.
QUÈ PASSA AMB L’AIGUA DE L’ESTANY?. L’ESTANY DE BANYOLES ÉS UN BÉ COMUNAL. COM A TAL L’AJUNTAMENT ÉS EL GESTOR D’AQUEST I ELS BANYOLINS I BANYOLINES SÓN.
Números anòmals. Novembre 2005Curiositats i aplicacions de la probabilitat 2 atzar = equiprobabilitat ? Quan parlem de jocs d’atzar el model probabilístic.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors MULTITHREADING & JAVA SYNCHRONIZATION David.
Pràctica 17 Reflexions Maria Gisbert, Llorenç Godia, Mariona Kiskeri i David González.
Del llenguatge visual al missatge visual Su Richardson Burnt Breakfast Adaptació d’una presentació de M. Acaso.
EL TEMPS. ¿QUÈ ÉS EL TEMPS? El temps és un concepte físic que tots experimentem quotidianament, però que es difícil de definir formalment. Es pot partir.
El pes de la responsabilitat. Guillermo Mordillo és un dibuixant argentí que utilitza molt sovint el món de l’esport en les seves creacions gràfiques.Aquí.
RESUM.
Un milió d’arbres?. En aquesta activitat intentarem fer una estimació aproximada dels quilometres que poden recórrer els ciclistes del Saunier Duval.
Activitat CALCULA: ESPORT MASCULÍ I ESPORT FEMENÍ Observatori Crític de l’Esport Autora: Susanna Soler i Prat INEFC Barcelona.
AIGUA STOP Control Automàtic de Fuites. Situació actual: Situació actual:  A Espanya, els estalvis possibles de la despesa d’aigua en edificis públics.
ELS BLOCS I LA SEVA APLICACIÓ A L’AULA Recull de propostes sobre els usos didàctics dels blocs Material del Curs de l’Escola d’Estiu Virtual d’Espiral.
IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle.
Curs de programació d’iOS Novembre de 2011 Organitza.
La llegenda m’ajuda a llegir el mapa.... a interpretar el que diu
Organització, funcionament i gestió dels centres docents públics Les competències bàsiques Jornada de participació Tarragona, Materials a càrrec.
TUTORIAL BÀSIC PER A LA GESTIÓ DE LA UBICACIÓ DE LES PERSONES EN L’APLICACIÓ DEL CATÀLEG D’ESPAIS SERVEI TÈCNIC I DE MANTENIMENT.
TFG – Àrea Enginyeria del programari
Cambios en el espacio: transformaciones geométricas
PROJECTE BANDA AMPLA RURAL - SATÈL·LIT
PROPORCIONALITAT 1 Funciona amb “clics”.
Els instruments musicals
Tema 6: L’ENERGIA.
Exportar qualificacions a les actes
MÚLTIPLES I DIVISORS.
INTERNET i Correu Electrònic
Reaccions químiques.
Google Scholar citations
Propietats relacionades amb l'aspecte extern Altres propietats
Tema 2. DIVISIBILITAT.
CUIDATGE.
2c. Les pàgines web i l’hipertext. Les bases de dades a la xarxa
Introducció de TEDIs (COACs) Versió 4.0
Presentació de la base de dades
ESTADÍSTIQUES I WEBQUEAST
Creació d’un mapa personalitzat
Control de Retirada de Vehicles
Àrea d’Afers Acadèmics
H. EBBINGHAUS. ELS PRIMERS ESTUDIS SISTEMÀTICS SOBRE MEMÒRIA
Impressions sensibles
PLA DE FORMACIÓ DEL CENTRE
Impressions sensibles
Tutorials Campus Virtual Càrrega automàtica d’alumnes
Síntesi (ordenació i unificació)
Curs de Llenguatge Administratiu Valencià Juli Martínez Amorós
Gestió electrònica del Dipòsit Legal
1 La identificació com a usuari periodista es realitza la primera vegada introduint en el camp Usuario, la lletra E seguida dels vuit dígits del DNI.
Jonathan Ceballos Rodriguez ( ) Zenón Perisé Alía ( )
Tema 5: Nombres naturals i enters
SCIENCE OF SYNTHESIS.
CONNEXIONS SENSE CABLES I DISPOSITIUS MÒBILS
TEMA 2 XARXES LOCALS David Bermúdez 4tC Vanesa Elvira 4tB
ERRORS FREQÜENTS A L'EXAMEN DE HISTÒRIA - PAU
Dibuix Tècnic Sistemes de representació.
ACTIVITAT AL LABORATORI. “FEM UN VOLCÀ”
Projecte de P-3: Som fotògrafs!!
Threads en Java David Gañán Jiménez.
PROTOCOLS DE XARXA Regles i especificacions tècniques que han de seguir els dispositius connectats a la xarxa per poder comunicar-se El protocol més utilitzat.
TUTORIAL BÀSIC PER A LA GESTIÓ DE LA UBICACIÓ DE LES PERSONES EN L’APLICACIÓ DEL CATÀLEG D’ESPAIS SERVEI TÈCNIC I DE MANTENIMENT.
Exportar qualificacions a les actes
(Fes clic per entrar en el quadre i poder escriure) NOM DELS PERSONATGE (Per canviar la lletra i la mida ho pots fer des de FORMATO-FUENTE) Escriviu els.
LES MÀQUINES.
Estils i Plantilles Ms Word.
La inserció laboral dels graduats de grau de la UPF
Transcripción de la presentación:

Curs de programació d’iOS Novembre de 2011 Organitza

9 Navegació (UINavigationController) Les aplicacions que tenen múltiples pantalles d’informació utilitzen la classe UINavigationController UINavigationController és l’encarregat de mantenir una pila de pantalles. Les vistes, o instancies view, que apareixen a la pantalla pertanyen al UIViewController situat a la part més alta de la pila.

Navegació

Quan s’inicialitza una instància de UINavigationController se li ha d’especificar un UIViewController arrel. El UIViewController arrel mostra la primera pantalla que l’usuari veu.

Navegació UINavigationController topViewController NSArray rootViewControllerviewControllers UIViewController

Navegació Quan la pila rep una operació de tipus pushViewController, s’afegeix un nou controlador a la posició més alta de la pila i es mostra per pantalla la seva corresponent vista.

Navegació (pushViewController) [[self navigationController] pushViewController:viewController animated:YES];

Navegació Quan la pila rep una operació de tipus popViewController, s’extreu el controlador situat a la posició més alta (pantalla visible) de la pila i es torna a mostrar la pantalla del controlador anterior.

Navegació (popViewController) [[self navigationController] popViewControllerAnimated:YES];

Navegació

UINavigationController té almenys dues vistes: La vista del UIViewController situat a la part més alta de la pila, és a dir, el que s’està mostrant. Un UINavigationBar (barra superior de navegació)

Navegació UINavigationController UIViewControllerUINavigationBar UIView topViewControllernavigationBar view

Exemple 10 #import “CotxesAppDelegate.h" #import window = viewController = _viewController; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.viewController = [[[LlistaViewController alloc] bundle:nil] autorelease]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; self.window.rootViewController = navController; [navController release]; [self.window makeKeyAndVisible]; return YES;

UINavigationBar UINavigationBar és la classe encarregada de representar la barra de navegació. La classe UINavigationItem és l’encarregada de proporcionar a la barra de navegació el contingut que ha de mostrar. Els controladors UIViewController tenen la propietat navigationItem del tipus UINavigationItem Quan s’empila un UIViewController, el controlador de navegació UINavigationBar utilitza la propietat navigationItem per obtenir el contingut a mostrar.

navigationBar UINavigationController topViewController UINavigationBar navigationItem UIViewControllerUINavigationItem Obté les dades que ha de mostrar a partir de...

UINavigationBar topViewController UNavigationController navigationBar UIViewController UINavigationItem navigationItem title

UINavigationBar navigationBar UINavigationController topViewController UIViewController navigationItem UINavigationItem UIBarButtonItem leftBarButtonItemrightBarButtonItemtitleView UILabelUIBarButtonItem title text Message”

10 Interacció amb serveis web Un servei web és una aplicació que corre sobre un servidor web. Permeten l’intercanvi d’informació entre el terminal i el servidor. El format més habitual de les dades que es transfereixen entre un servei web i una aplicació client és XML i JSON.

Obtenir dades des d’una URL Disposem de tres classes: NSURL, NSURLRequest i NSURLConnection NSURLConnection request NSURLRequest URL NSURL cachePolicy Timeout httpHeaders httpBody

Obtenir dades des d’una URL NSURL: Conté l’adreça URL de l’aplicació web. NSURLRequest: Les instàncies d’aquesta classe emmagatzemen totes les dades necessàries per a la comunicació amb el servidor web. Configuració de la caché, temps màxim de resposta, capçaleres http, etc… NSURLConnection: Les instàncies d’aquesta classe són les responsables de portar a terme la connexió amb el servidor web, enviar i rebre la informació.

Com treballar amb la classe NSURLConnection Es pot connectar a un servidor web de dues maneres: en mode síncron o mode asíncron. El mode síncron bloqueja l’aplicació mentre no es reben les dades completament. El mode asíncron no paralitza la l’aplicació durant les transferències. Els callbacks s’invoquen sobre la classe delegadora que implementa NSURLConnectionDelegate

Exemple de connexió asíncrona // Composar la URL del servei web NSURL *url = [NSURL // Composar el request NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30]; if(connectionInProgress) { [connectionInProgress cancel]; [connectionInProgress release]; } xmlData = [[NSMutableData alloc] init]; // S’inicia la connexió asíncrona (no-bloquejant) connectionInProgress = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; Crea la connexió a un RSS

Exemple de connexió asíncrona // Composar la URL del servei web // Aquest mètode serà invocat varies vegades a mesura que vagin arribant els fragments de dades - (void) connection: (NSURLConnection *)connection didReceiveData: (NSData *)data { [xmlData appendData:data]; } Implementar els mètodes delegats de NSURLConnectionDelegate Concatenar les dades que es van rebent. - (void)connectionDidFinishLoading: (NSURLConnection *)connection { NSString *xmlCheck = [[[NSString alloc] initWithData:xmlData encoding:NSUTF8StringEncoding] autorelease]; = xmlCheck); } Quan la connexió acaba d’obtenir totes les dades s’invoca el mètode connectionDidFinishLoading al delegat.

Exemple de connexió asíncrona - (void)connection: (NSURLConnection *)connection didFailWithError: (NSError *)error { [connectionInProgress release]; connectionInProgress = nil; [xmlData release]; xmlData = nil; } Hi ha la possibilitat de que la connexió falli. En aquests casos s’invoca el mètode connection:didFailWithError

Anàlisis de dades XML Per processar les dades XML que s’obtenen d’un servei web cal emprar un parser XML. Per a aquesta tasca disposem de la classe NSXMLParser A mesura que el parser avança amb la lectura de dades, anirà enviant missatges al seu delegat de tipus NSXMLParserDelegate el qual l’informarà del progrés. Parser de tipus SAX

NSXMLParser // Crear l’objecte parser amb dades rebudes del servei web anterior NSXMLParser *parser = [[NSXMLParser alloc] initWithData:xmlData]; // Cal assignar-li el delegate de tipus NSXMLParserDelegate [parser setDelegate: self]; // Iniciar el parseig. El document XML serà analitzat I formatejat, i el delegate de NSXMLParser rebrà tots els seus missatges // delegats abans de que finalitzi l’execució d’aquesta linia (bloquejant) [parser parse]; // En aquest punt el parser ha finalitzat i ja el podem alliberar [parser release]; // Podem refrescar les dades de la taula [[self tableView] reloadData];

NSXMLParser - (void)parser: (NSXMLParser *)parser didStartElement: (NSString *)elementName namespaceURI : (NSString *)namespaceURI qualifiedName: (NSString *)qName attributes: (NSDictionary *)attributeDict { if([elementName { trobat.”); titleString = [[NSMutableString alloc] init]; } Implementació dels mètodes delegats de NSXMLParserDelegate Mètode per processar els tags d’inici o obertura parser:didStartElement:nameSpaceURI:qualifiedName:attributes Concatenar el text que hi ha entre tag i tag. - (void)parser: (NSXMLParser *)parser foundCharacters: (NSString *)string { [titleString appendString:string]; }

NSXMLParser - (void)parser: (NSXMLParser *)parser didEndElement: (NSString *)elementName namespaceURI : (NSString *)namespaceURI qualifiedName: (NSString *)qName { if([elementName { trobat.”); [object setTitle:titleString]; [titleString release]; titleString = nil; } Mètode per processar els tags de tancament parser:didEndElement:nameSpaceURI:qualifiedName