<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkcGRXc5fCp7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654</id><updated>2011-11-28T00:53:44.924+01:00</updated><category term="interface builder" /><category term="xcode" /><category term="architectura" /><category term="trucos y consejos" /><category term="fundamentos de programacion" /><category term="sdk" /><category term="iphone sdk" /><category term="noticias" /><category term="development" /><category term="tutorial" /><category term="objetive-c" /><category term="clases" /><category term="delegate" /><category term="patrónes de diseño" /><title>IPHONE PROGRAMACION - Hola Mundo Iphone</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://helloworldiphone.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>PynSoft</name><uri>http://www.blogger.com/profile/10290786168468723833</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/HolaMundoIphone" /><feedburner:info uri="holamundoiphone" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUUMRHs9cSp7ImA9Wx9SEkk.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-4016443179895705244</id><published>2010-11-19T01:36:00.032+01:00</published><updated>2010-12-01T23:41:25.569+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-01T23:41:25.569+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iphone sdk" /><title>Actionsheet</title><content type="html">Hola a todos, retomando el tema de los artículos hoy voy a hablaros sobre el UIActionSheet. Seguramente casi todos vosotros lo conocéis aunque algunos tal vez no asocien su nombre al control.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;¿Qué es el control UIActionSheet?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;El control UIActionSheet es un control que aparece desde la parte de abajo de la pantalla y que suele usarse para alertar al usuario y darle una serie de opciones con la opción de destacar algunas de ellas. Este control lo podemos ver en la agenda cuando vamos a eliminar un contacto y nos pide la confirmación.&lt;br /&gt;&lt;br /&gt;Uso de un UIActionSheet en nuestra aplicación:&lt;br /&gt;&lt;br /&gt;A la hora de trabajar con este control lo primero que debemos hacer es indicar en la clase en la que vayamos a trabajar con él en el .h que vamos a usar su delegado, el cual se llama "UIActionSheetDelegate"  quedando por lo tanto nuestro .h de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;miClase:UIViewController &amp;ltUIActionSheetDelegate&amp;gt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Una vez hecho esto, iremos al .m y crearemos nuestro control con el siguiente código:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;UIActionSheet *myActionSheet=[[[UIActionSheet alloc]initWithTitle:@"RemoveAll" delegate:self cancelButtonTitle:@"NO" destructiveButtonTitle:@"YES" otherButtonTitles:@"Not sure", @"maybe",@"not sure",@"other time",@"sometimes",@"never", nil]autorelease];&lt;br /&gt;&lt;br /&gt;[myActionSheet showInView:self.view];&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Una vez visto el código vamos a analizarlo:&lt;br /&gt;El botón que pongamos como &lt;span style="font-weight: bold;"&gt;destructiveButton&lt;/span&gt; tendrá el fondo por defecto rojo.&lt;br /&gt;El botón que pongamos como &lt;span style="font-weight: bold;"&gt;cancelButton &lt;/span&gt;tendrá el fondo por defecto en gris.&lt;br /&gt;Los botones que pongamos en &lt;span style="font-weight: bold;"&gt;otherButton&lt;/span&gt; su fondo será blanco y si ponemos demasiados elementos automáticamente te crea una tabla con scroll tal y como se ven en la siguiente imagen:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://www.blogcantabria.com/wp-content/uploads/2010/11/capturaActionsheet.png"&gt;&lt;img border="0" height="320" src="http://www.blogcantabria.com/wp-content/uploads/2010/11/capturaActionsheet.png" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Ahora con el control ya creado nos interesará capturar en qué opción han pulsado el usuario y para eso gracias a que declaramos en el .h su delegado tendremos acceso a capturar los eventos  asociados a ese control entre los que está uno que nos permite capturar en qué botón ha pulsado el usuario entre otras cosas.&lt;br /&gt;&lt;br /&gt;Os pongo el ejemplo de como vamos a capturar donde ha pulsado:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt;-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex(NSInteger)buttonIndex {&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;NSLog(@"ButtonsIndex: %i",buttonIndex);&lt;br /&gt;if (buttonIndex==[actionSheet cancelButtonIndex])&lt;br /&gt;{&lt;br /&gt;NSLog(@"Cancelled");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (buttonIndex == [actionSheet firstOtherButtonIndex])&lt;br /&gt;{&lt;br /&gt;NSLog(@"primer boton de otros: %@",[actionSheet buttonTitleAtIndex:buttonIndex]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (buttonIndex == 2)&lt;br /&gt;{&lt;br /&gt;NSLog(@"Otra");&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Como podéis ver en el ejemplo el método que estamos usando para capturar el evento es "didDismissWithButtonIndex" y estamos recibiendo qué índice ha sido pulsado, y luego estamos comparando las los 3 tipos posibles de boton (los 2 destacados y cualquiera de los de la tabla) a través de su índice.&lt;br /&gt;&lt;br /&gt;Por último relacionado con este control os dejo los links que me parecen de interés:Métodos que nos permiten capturar acciones del control a través de su delegado:&lt;/div&gt;&lt;br /&gt;&lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIModalViewDelegate_Protocol/UIActionSheetDelegate/UIActionSheetDelegate.html"&gt;Link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Todas las propiedades y métodos del actionSheet propiamente dicho:&lt;br /&gt;&lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIActionSheet_Class/Reference/Reference.html"&gt;Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-4016443179895705244?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5OPR35XpJvnVdMYMoPwNQcHhD9g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5OPR35XpJvnVdMYMoPwNQcHhD9g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5OPR35XpJvnVdMYMoPwNQcHhD9g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5OPR35XpJvnVdMYMoPwNQcHhD9g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/ZaiIHq_HYjY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/4016443179895705244/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/11/actionsheet.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4016443179895705244?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4016443179895705244?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/ZaiIHq_HYjY/actionsheet.html" title="Actionsheet" /><author><name>Pablo</name><uri>http://www.blogger.com/profile/12826422107526580998</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/11/actionsheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQDQXY4eCp7ImA9Wx5XE0Q.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-1457693249350754272</id><published>2010-09-13T18:08:00.003+02:00</published><updated>2010-09-13T18:12:50.830+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-13T18:12:50.830+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iphone sdk" /><title>Multiidioma (I)</title><content type="html">En esta primera parte vamos a explicar como hacer que nuestras aplicaciones sean multiidioma. En primer lugar decir que cuando hacemos una aplicación multiidioma no es necesario si no queremos hacerlo en todos los idiomas de los mercados en los que pongamos nuestra app en el caso en el cual el idioma del dispositivo no esté contemplado en la aplicación cogerá &lt;b&gt;por defecto el inglés&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
1. Crear un fichero de tipo &lt;b&gt;Strings file &lt;/b&gt;el cual será nuestro fichero de recursos.&lt;br /&gt;
&lt;br /&gt;
Lo vamos a crear en la carpeta de Resources y para ello haremos botón derecho sobre la carpeta de Resources, &amp;nbsp;&lt;b&gt;Add - New File&lt;/b&gt; y seleccionados debajo de MAC OS X la opción Resources y dentro de está en la parte derecha elegimos el fichero de tipo Strings File &amp;nbsp;y lo llamaremos &lt;b&gt;Localizable.strings&lt;/b&gt;&amp;nbsp;(hay que llamarlo así).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura1.jpg"&gt;&lt;img border="0" height="258" src="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;2.&amp;nbsp;Ahora ya tenemos un fichero de recursos pero nosotros necesitamos tener varios idiomas,para ello lo que haremos será "crear diferentes versiones" de este fichero de recursos.&lt;br /&gt;
&lt;br /&gt;
Botón derecho sobre el fichero Localizable.strings,&amp;nbsp;Get info y en la pestaña General haremos click sobre el botón &lt;b&gt;Make File Localizable&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura3.jpg"&gt;&lt;img border="0" height="258" src="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
3. Volvemos a la &lt;b&gt;pestaña general&lt;/b&gt; y ahora tenemos una pantalla con una caja de texto en la que pone solo English que este será el idioma por defecto.&lt;br /&gt;
&lt;br /&gt;
4. Para añadir más idiomas, hacer clic en &lt;b&gt;Add Localization&lt;/b&gt; y en función del idioma que queramos pondremos el código iso del idioma, otra opción es seleccionar del combo el idioma que queramos o escribirle tal cual, yo recomiendo poner el código iso. Una vez añadidos los deseados cerramos la pantalla.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura.jpg"&gt;&lt;img border="0" height="258" src="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Listado de los códigos de los idiomas &lt;a href="http://www.mcanerin.com/EN/articles/meta-language.asp"&gt;aquí&lt;/a&gt;&lt;br /&gt;
5. Ahora verás que ha aparecido una flechita a la izda del fichero, si le damos se despliega y como &amp;nbsp;ves hay una versión del fichero Localizable.strings por cada idioma que hayamos añadido.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura5.jpg"&gt;&lt;img border="0" src="http://www.blogcantabria.com/wp-content/uploads/2010/09/captura5.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
El formato de las diferentes versiones del fichero Localizable.string será el siguiente:&lt;br /&gt;
&lt;br /&gt;
(hacemos clic sobre la versión &lt;b&gt;"es"&lt;/b&gt;):&lt;br /&gt;
En el español:&lt;br /&gt;
&lt;br /&gt;
"Saludo" = "Hola";&lt;br /&gt;
"Boton" = "Botón";&lt;br /&gt;
&lt;br /&gt;
(hacemos clic sobre la versión &lt;b&gt;"English"&lt;/b&gt;)&lt;br /&gt;
En el de inglés:&lt;br /&gt;
&lt;br /&gt;
"Saludo" = "Hello";&lt;br /&gt;
"Boton" = "Button";&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como has podido ver estos ficheros de recursos son listados de &lt;b&gt;pares clave-valor (ambos cadenas de texto)&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: red;"&gt;Importante: &amp;nbsp;A pesar de ser cadenas de texto no van precedidas de @&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
6. Para obtener el texto correspondiente a la clave "Saludo" lo haremos de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
NSLocalizedStrings(@"Saludo",@"");&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;EJEMPLO:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Para asignar el valor a una &lt;b&gt;label&lt;/b&gt;: &amp;nbsp; etiqueta.text =NSLocalizedString(@"Saludo",@"");&lt;br /&gt;
&lt;br /&gt;
Para asignar el texto de un &lt;b&gt;botón&lt;/b&gt;: [miBoton setTitle:NSLocalizedString(@"Boton",@"")forState:0];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tenemos preparado un tutorial con esto, debido a los problemas con el audio no se escucha en youtube. Por lo tanto en cuanto se resuelva dicho problema pondremos el video.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-1457693249350754272?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pl8okYBJzSMk6e99evccnxyZrTQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pl8okYBJzSMk6e99evccnxyZrTQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pl8okYBJzSMk6e99evccnxyZrTQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pl8okYBJzSMk6e99evccnxyZrTQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/TzzGRPcXR0g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/1457693249350754272/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/09/multiidioma-i.html#comment-form" title="14 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/1457693249350754272?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/1457693249350754272?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/TzzGRPcXR0g/multiidioma-i.html" title="Multiidioma (I)" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>14</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/09/multiidioma-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8GRXs5fyp7ImA9Wx5SFk4.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-299551578971856895</id><published>2010-08-12T19:23:00.013+02:00</published><updated>2010-08-12T20:13:44.527+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-12T20:13:44.527+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trucos y consejos" /><category scheme="http://www.blogger.com/atom/ns#" term="xcode" /><title>Copias de Seguridad del proyecto</title><content type="html">&lt;div style="text-align: justify;"&gt;¿Cuántas veces has estado programando y cosas que funcionaban dejan de funcionar...? Para evitar esto en XCode disponemos de una herramienta muy sencilla y útil.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Podemos hacer "capturas instantáneas" (crear versiones) del proyecto e irlas guardando y en un momento dado restaurar y que el proyecto vuelva a una versión concreta, ésta herramienta nos va a facilitar llevar esta gestión de manera sencilla y eficiente.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/_k-NGdCaDzgQ/TGQ3azllN0I/AAAAAAAABnw/etEvs8UcUmQ/s400/Screen+shot+2010-08-12+at+7.31.43+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5504585578217551682" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 243px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para&lt;b&gt; crear una versión&lt;/b&gt; puedes hacerlo de dos maneras:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* XCode : File - Make Snapshot&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* Acceso directo: comando(manzana) + control + S&lt;/div&gt;&lt;div style="text-align: justify;"&gt;*Primera opción (make) del gestor de versiones , para abrir el gestor: en XCode: File - Snapshot &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Gestión de versiones: File-Snapshots&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Opciones en la parte superior:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- &lt;b&gt;make:&lt;/b&gt; Crea una nueva versión&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- &lt;b&gt;delete: &lt;/b&gt;Elimina la versión seleccionada.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- &lt;b&gt;restore:&lt;/b&gt; Restaura el proyecto a la versión seleccionada.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- &lt;b&gt;hide: &lt;/b&gt;esconde la zona derecha de la pantalla donde se muestra el detalle de los cambios que se han realizado.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Justo debajo de este menú tenemos el listado de las versiones que tenemos guardadas y cuando seleccionamos una de ellas debajo aparece el detalle de la misma (nombre fecha y comentarios) y en la parte derecha de manera resumida los ficheros que se han modificado, si hacemos clic sobre cualquiera de los cambios debajo aparece el fichero antiguo y el actual para que veamos que cambio en concreto se ha producido.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Algo tal que así:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://1.bp.blogspot.com/_k-NGdCaDzgQ/TGQ3jZDRqWI/AAAAAAAABn4/3LffdOslmSU/s400/Screen+shot+2010-08-12+at+7.42.21+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5504585725713164642" style="text-align: justify;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 239px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span"&gt;Y finalmente en la parte inferior izquierda sale un resumen de los ficheros eliminados, modificados y añadidos.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-299551578971856895?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KtV5M9kN5taQUuhaD2l3qyvj4IQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KtV5M9kN5taQUuhaD2l3qyvj4IQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KtV5M9kN5taQUuhaD2l3qyvj4IQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KtV5M9kN5taQUuhaD2l3qyvj4IQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/e3qq_zPLdiA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/299551578971856895/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/copias-de-seguridad-del-proyecto.html#comment-form" title="11 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/299551578971856895?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/299551578971856895?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/e3qq_zPLdiA/copias-de-seguridad-del-proyecto.html" title="Copias de Seguridad del proyecto" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_k-NGdCaDzgQ/TGQ3azllN0I/AAAAAAAABnw/etEvs8UcUmQ/s72-c/Screen+shot+2010-08-12+at+7.31.43+PM.png" height="72" width="72" /><thr:total>11</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/copias-de-seguridad-del-proyecto.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYFQ3gzeSp7ImA9Wx5SFEo.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-4677237523535630761</id><published>2010-08-10T21:20:00.007+02:00</published><updated>2010-08-10T23:35:12.681+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-10T23:35:12.681+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iphone sdk" /><title>Gestión de un UIView</title><content type="html">Por cada fichero de interfaz .xib que tenga una vista (UIView) debemos tener una clase que será la encargada de manejar todo lo relacionado con ese .xib. Ésta clase heredará de la clase UIViewController y se encargará de gestionar todo lo relacionado con la vista asociada (UIView).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aunque una misma clase en teoría puede manejar más de una vista en la práctica se tiene una clase por cada xib.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ésta clase que hereda del UIViewController se encarga de gestionar además de los elementos que añadamos en la vista como por ejemplo botones, label... gestionará el ciclo de vida del UIView controlando por ejemplo los siguientes "eventos":&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;b&gt;didReceiveMemoryWarning&lt;/b&gt;: El controlador recibe un aviso de memoria.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;didRotateFromInterfaceOrientation: &lt;/b&gt;Se invoca después de que la vista ha rotado.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;willRotateToInterfaceOrientation:duration:&lt;/b&gt; Se invoca cuando comienza a rotar la vista, el duration indica el tiempo que va a tardar en rotar.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;viewDidAppear:&lt;/b&gt; Se invoca después de que la vista ha aparecido.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;viewDidDisappear:&lt;/b&gt; Se invoca después de que la vista ha desaparecido.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;viewDidLoad:&lt;/b&gt; Se invoca después de que la vista se ha cargado en memoria.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;viewWillAppear: &lt;/b&gt;Se invoca justo antes de que la vista aparezca.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;viewWillDisappear:&lt;/b&gt; Se invoca justo antes de que la vista desaparezca.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:&lt;/b&gt; Se ejecuta antes de la rotación de la primera mitad del interfaz y la duración que va a durar. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&lt;b&gt;willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:&lt;/b&gt;Se ejecuta antes de la rotación de la segunda mitad del interfaz y la duración que va a durar. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-4677237523535630761?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NiYOdVFVUrsdqzxwhO7zQLuFSl8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NiYOdVFVUrsdqzxwhO7zQLuFSl8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NiYOdVFVUrsdqzxwhO7zQLuFSl8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NiYOdVFVUrsdqzxwhO7zQLuFSl8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/_RVrD3yk3Eg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/4677237523535630761/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/gestion-de-un-uiview.html#comment-form" title="6 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4677237523535630761?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4677237523535630761?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/_RVrD3yk3Eg/gestion-de-un-uiview.html" title="Gestión de un UIView" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/gestion-de-un-uiview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4MRn47eSp7ImA9Wx5SEkQ.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-4362729402648621297</id><published>2010-08-08T19:32:00.007+02:00</published><updated>2010-08-08T21:49:47.001+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-08T21:49:47.001+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iphone sdk" /><title>UIApplication</title><content type="html">Toda aplicación del iphone tiene un objeto de tipo UIApplication el cual es el punto de entrada de la aplicación y se encargará de inicializar y de mostrar un UIWindow y cargar además en este UIWindow la primera vista a mostrar. Además este UIApplication debe encargarse de gestionar el ciclo de vida de la aplicación y para eso hace uso del UIApplicationDelegate. De todas maneras es el UIApplication el que recibe los eventos pero se gestionan mediante el delegado.&lt;br /&gt;&lt;br /&gt;Los eventos que se manejan desde el UIApplicationDelegate son por ejemplo arrancar la aplicación , cerrar la aplicación o eventos como que entre una llamada mientras la aplicación se está ejecutando.&lt;br /&gt;&lt;br /&gt;Vamos a detallar un poco más lo eventos que podemos manejar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;didChangeStatusBarFrame:&lt;/span&gt; El frame de la barra de estado ha cambiado.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;willChangeStatusBarFrame:&lt;/span&gt; El frame de la barra de estado va a cambiar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;didChangeStatusBarOrientation: &lt;/span&gt;Cambia la orientación de la barra de estado&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;willChangeStatusBarOrientation:duration:&lt;/span&gt; La orientación de la barra de estado va a cambiar y el parámetro duration le indica cuanto va a durar la animación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;handleOpenURL:&lt;/span&gt; Le indica al delegado que quiere abrir una url.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationDidBecomeActive:&lt;/span&gt; Se ejecuta justo después de que la aplicación vuelva estar activa de nuevo. Por ejemplo te ha entrado una llamada y has terminado, la aplicación vuelve a estar activa y justo en ese momento se ejecuta este evento.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationDidFinishLaunching:&lt;/span&gt; Se ejecuta cuando la aplicación ha terminado de cargarse.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationDidReceiveMemoryWarning:&lt;/span&gt; Cuando recibe este mensaje es debido a que el SO le ha enviado este mensaje a la aplicación ya que se ha quedado el dispositivo sin memoria pero antes de cerrarla se le da una "oportunidad" de ejecutar este método para que se libere la memoria que se pueda de la app.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationSignificantTimeCharge:&lt;/span&gt; Se ha producido un cambio significativo en el tiempo durante la ejecución de tu aplicación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationWillResignActive:&lt;/span&gt; Se ejecuta antes de que pase a inactiva por ejemplo te entra una llamada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationWillTerminate:&lt;/span&gt; La aplicación se cierra.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationDidEnterBackground:&lt;/span&gt; La aplicación va a entrar en segundo plano pero si la aplicación no tiene implementado multitarea en este método deberías guardar los estados de la aplicación, liberar la memoria ya que se queda en "pausa" en segundo plano y cuando el usuario vuelve a entrar estará en el estado en el que se quedó pero cuando está en esta "pausa" si el SO necesita memoria la va a cerrar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;applicationWillEnterForeground:&lt;/span&gt; La aplicación vuelve a primer plano.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Nota: El UIapplicationDelegate de nuestra aplicación es el nombreAplicaciónAppDelegate, se generá automáticamente cuando creamos un nuevo proyecto (independientemente de la plantilla que usemos) y esa clase hereda de NSObject e implementa el protocolo UIApplicationDelegate.&lt;br /&gt;&lt;br /&gt;Nota: Cuando hablamos de que se produce un evento o el delegado recibe un evento significa en realidad que se envía un mensaje concreto al delegado en función de lo que suceda y de esa manera ejecute el código correspondiente.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-4362729402648621297?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zJvjMS8nzkE71067go3HovMkUws/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zJvjMS8nzkE71067go3HovMkUws/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zJvjMS8nzkE71067go3HovMkUws/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zJvjMS8nzkE71067go3HovMkUws/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/40YGWiIAegY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/4362729402648621297/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/uiapplication.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4362729402648621297?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4362729402648621297?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/40YGWiIAegY/uiapplication.html" title="UIApplication" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/uiapplication.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMDRX0_eyp7ImA9Wx5RFUg.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-8826016125039154800</id><published>2010-08-06T16:57:00.005+02:00</published><updated>2010-08-23T10:01:14.343+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-23T10:01:14.343+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="noticias" /><title>Versión móvil del blog</title><content type="html">Ya tenemos la versión móvil del blog para que podáis leerlo desde el iphone/ipod o ipad pudiendo si queréis cambiar a la vista clásica.&lt;br /&gt;&lt;br /&gt;Espero que os resulte útil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-8826016125039154800?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v8awwDeNnm63nyISI4yqgV-ea8o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v8awwDeNnm63nyISI4yqgV-ea8o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v8awwDeNnm63nyISI4yqgV-ea8o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v8awwDeNnm63nyISI4yqgV-ea8o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/-9wGREBwHRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/8826016125039154800/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/version-movil-del-blog_06.html#comment-form" title="5 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8826016125039154800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8826016125039154800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/-9wGREBwHRM/version-movil-del-blog_06.html" title="Versión móvil del blog" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/version-movil-del-blog_06.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkECSH86eip7ImA9Wx5SEE4.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-6804561856893872700</id><published>2010-08-03T08:00:00.007+02:00</published><updated>2010-08-05T19:51:09.112+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-05T19:51:09.112+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fundamentos de programacion" /><title>Programación desde cero: Procedimientos y funciones</title><content type="html">&lt;div&gt;No sé si te habrás encontrado en algún manual algo relacionado con los conceptos de procedimientos y funciones aunque no sea así es importante para lo que es fundamentos de la programación en general.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tanto un procedimiento como una función son porciones de código que hacen algo y que se les ha dado un nombre, por ejemplo imagínate que dentro de una misma aplicación quieres comprobar si un año es bisiesto y para ello hay que hacer una serie de comprobaciones, pero tu en tu aplicación tienes que hacerlo en varios sitios por lo que si copias el mismo código varias veces iba a quedar muy redundante a parte que si por lo que sea te has equivocado en alguna condición de año bisiesto tienes que andar buscando por toda la aplicación en los sitios en los que la copiaste para ir modificándolo. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;¿Qué hacemos? pues a ese trozo de código le asignamos un nombre por ejemplo "comprobacionBisiesto" y de esa manera en todas las partes de la aplicación en las que quiera comprobar si un año es bisiesto tendría que poner "comprobaciónBisiesto" y de esa manera cuando tengamos que hacer un cambio en "comprobaciónBisiesto" solo lo haremos una vez.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pero por ejemplo tomando como base "comprobaciónBisiesto" para poder evaluar si año es bisiesto debo decirle a "comprobaciónBisiesto" cuál es el año que quiero que compruebe y por ello lo que hacemos es pasarle parámetros, ésto es común tanto cuando hablamos de procedimientos como de funciones en cambio la diferencia entre ambos es si esa porción de código que hemos escrito (comprobaciónBisiesto) devuelve algo o no, por ejemplo si queremos que devuelva un dato lo haremos con una función y sino con un procedimiento.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hay lenguajes de programación que lo que nos permiten es las funciones y procedimientos que los parámtros de entrada (en este caso sería el año) puedan ser parámetros también de salida (para así devolver varios datos) pero eso depende del lenguaje de programación por lo que aquí no nos interesa ya que estamos hablando de programación en general.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eso si en las funciones como solo se devuelve 1 dato y solo 1 dentro del trozo de código hay que hacer un return con la información a devolver ya sea un dato o una variable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En nuestro caso de ComprobaciónBisiesto devolvería un tipo de dato booleano (verdadero/falso) y de esa manera sabríamos si lo es o no. En función del lenguaje de programación el tipo booleano puede tomar valores como 0/cualquier número, 0/1, true/false... esta representación va en función del lenguaje de programación.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En este caso lo que estamos haciendo es pasarle a la &lt;span style="font-weight: bold;"&gt;función&lt;/span&gt; un año y nos devuelve si es bisiesto o no.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;Booleano comprobacionBisiesto(entero Año){&lt;br /&gt;         booleano esBisiesto&lt;br /&gt;&lt;br /&gt;         //Aquí irian todas las comprobaciones pertinentes&lt;br /&gt;&lt;br /&gt;         si (esBisiesto)&lt;br /&gt;            return verdadero&lt;br /&gt;         sino&lt;br /&gt;            return falso&lt;br /&gt;         // Otra opción más eficiente sería:  return esBisiesto&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;En éste caso le pasamos como parámetro un tipo de dato entero y mostramos por pantalla su área pero como ves no devuelve nada ya que es un procedimiento.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;code&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;MostrarAreaCuadrado(entero a){&lt;br /&gt;&lt;br /&gt;    mostrarPorPantalla(a*a);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-6804561856893872700?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/x7zZlEGicGVrvu2wQZJhGcwW6TU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/x7zZlEGicGVrvu2wQZJhGcwW6TU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/x7zZlEGicGVrvu2wQZJhGcwW6TU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/x7zZlEGicGVrvu2wQZJhGcwW6TU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/lx1tQFr0Bf4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/6804561856893872700/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/programacion-desde-cero-procedimientos.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6804561856893872700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6804561856893872700?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/lx1tQFr0Bf4/programacion-desde-cero-procedimientos.html" title="Programación desde cero: Procedimientos y funciones" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/programacion-desde-cero-procedimientos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUCSXk4fCp7ImA9Wx5TGEw.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-7435868784451017129</id><published>2010-08-02T08:00:00.003+02:00</published><updated>2010-08-03T08:17:48.734+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-03T08:17:48.734+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fundamentos de programacion" /><title>Programación desde cero: Variables</title><content type="html">El concepto de variable es muy usado en el mundo de la programación y aunque al principio de meterte en este mundillo te suene a chino es un concepto muy sencillo.&lt;br /&gt;&lt;br /&gt;Una variable es en realidad un dato, éste dato puede ser por ejemplo una cadena de texto, un número entero,un número decimal o tipo de dato booleano (verdadero o falso) pero de alguna manera tenemos que hacer referencia a este dato que tenemos, para ello usamos un nombre.&lt;br /&gt;&lt;br /&gt;Por ejemplo imaginemos que tenemos un dato referente a una edad, la edad va a ser 27 ¿cómo almacenamos ese dato? pues para ello declaramos una variable denominada miEdad, el tipo de dato es entero y el valor va a ser 27.&lt;br /&gt;&lt;br /&gt;Sin entrar en un lenguaje de programación concreto sería algo tal que así:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Entero miEdad;&lt;br /&gt;miEdad=27;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;En la primera línea hemos declarado el tipo de dato que va a almacenar la variable miEdad que va a ser un dato de tipo entero.&lt;br /&gt;En la segunda línea por el contrario hemos dado el valor a la variable, como es el primer valor que se asigna, normalmente se dice que lo hemos inicializado a 27.&lt;br /&gt;&lt;br /&gt;Te preguntarás que pasará si intentamos acceder al valor que tenga miEdad antes de ser inicializado, depende el lenguaje puede dar un error o devolver null.&lt;br /&gt;&lt;br /&gt;Hay lenguajes de programación que permiten hacer ambas cosas en una línea de la siguiente manera:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Entero miEdad = 27;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;Nota:&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt; Los atributos  a los que hacíamos referencia en el post de Objetos son en realidad variables pero que dan información a cerca de un objeto por lo que se llaman atributos.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-7435868784451017129?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s8X8oF0BJVDf_kRAcKB9AZ0kSpU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s8X8oF0BJVDf_kRAcKB9AZ0kSpU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s8X8oF0BJVDf_kRAcKB9AZ0kSpU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s8X8oF0BJVDf_kRAcKB9AZ0kSpU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/fAy1NTSvmis" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/7435868784451017129/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/programacion-desde-cero-variables.html#comment-form" title="9 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/7435868784451017129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/7435868784451017129?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/fAy1NTSvmis/programacion-desde-cero-variables.html" title="Programación desde cero: Variables" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/programacion-desde-cero-variables.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcNQHc4fSp7ImA9Wx5TF0g.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-6911719820586406359</id><published>2010-08-02T01:52:00.006+02:00</published><updated>2010-08-02T14:44:51.935+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-02T14:44:51.935+02:00</app:edited><title>Foro de Iphone Programación</title><content type="html">Debido al gran número de correos con preguntas que hemos recibido, muchas en los comentarios de los blogs y que en muchos casos se repiten nos ha parecido muy buena idea crear un foro para centralizarlo todo y de esa manera aprender todos mejor :)&lt;br /&gt;&lt;br /&gt;Espero vuestros posts!!!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.foroiphoneprogramacion.com/"&gt;www.foroiphoneprogramacion.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si detectáis cualquier error o queréis comentarnos algo, sugerencias...  ya sabéis!!!&lt;br /&gt;&lt;br /&gt;pynsoftware@gmail.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-6911719820586406359?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/COkSJqOtPTTI950aiARm07MpIck/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/COkSJqOtPTTI950aiARm07MpIck/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/COkSJqOtPTTI950aiARm07MpIck/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/COkSJqOtPTTI950aiARm07MpIck/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/kWqohvfCLW8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/6911719820586406359/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/foro-de-iphone-programacion.html#comment-form" title="4 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6911719820586406359?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6911719820586406359?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/kWqohvfCLW8/foro-de-iphone-programacion.html" title="Foro de Iphone Programación" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/foro-de-iphone-programacion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ABRXo4eCp7ImA9Wx5TF0k.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-6839339782546359769</id><published>2010-08-02T00:19:00.009+02:00</published><updated>2010-08-02T11:35:54.430+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-02T11:35:54.430+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="objetive-c" /><title>Sentencias iterativas en objetive-C: Bucle FOR</title><content type="html">&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;¿Cuándo usarlo?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este tipo de bucle se usa siempre y cuando conocemos el número de veces que se va a ejecutar un determinado código.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;Sintaxis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;for (inicialización del contador (1); condición de ejecución (2); actualización del contador(3)){&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;// Código a ejecutar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Secuencia de ejecución&lt;br /&gt;&lt;br /&gt;1. Se inicializa el contador (1).&lt;br /&gt;2. Se comprueba que el contador cumple la condición de ejecución(2).&lt;br /&gt;2.1 Si cumple la condición se ejecuta el código a ejecutar y se actualiza el contador(3) y volvemos al paso 2.&lt;br /&gt;2.2 Si no cumple la condición se sale del bucle for.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Ejemplo básico:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;for (int i=0; i&lt;10;i++) contador =" %d\n"&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;br /&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.912 pruebas[910:207] Contador = 0&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.914 pruebas[910:207] Contador = 1&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.915 pruebas[910:207] Contador = 2&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.915 pruebas[910:207] Contador = 3&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.916 pruebas[910:207] Contador = 4&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.917 pruebas[910:207] Contador = 5&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.918 pruebas[910:207] Contador = 6&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.918 pruebas[910:207] Contador = 7&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.919 pruebas[910:207] Contador = 8&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.920 pruebas[910:207] Contador = 9&lt;/b&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notas:&lt;br /&gt;Se puede declarar el contador fuera de la inicialización del contador.&lt;br /&gt;La actualización del contador puede tomar diferentes formas:&lt;br /&gt;- Incrementar: i++&lt;br /&gt;- Decrementar: i--&lt;br /&gt;- Cualquier otro tipo de modificación es válido, por ejemplo si queremos que se actualice de dos en dos sería de la siguiente manera: i = i + 2&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Otro ejemplo:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;for (int i=0; i&lt;=10; i=i+2) { NSLog(@"Contador = %d\n",i); } &lt;/code&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.920 pruebas[910:207] Contador = 0&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.921 pruebas[910:207] Contador = 2&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.921 pruebas[910:207] Contador = 4&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.922 pruebas[910:207] Contador = 6&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.922 pruebas[910:207] Contador = 8&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.923 pruebas[910:207] Contador = 10&lt;/b&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Otro ejemplo:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;for (int i=1; i&lt;30; i="i*3)" contador =" %d\n"&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.923 pruebas[910:207] Contador = 1&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.924 pruebas[910:207] Contador = 3&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.925 pruebas[910:207] Contador = 9&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.925 pruebas[910:207] Contador = 27&lt;/b&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Ejemplo usando como contador un carácter:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como ves no es necesario usar un contador de tipo entero para el bucle for.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;for (char i='b'; i&lt;'f';i++) {   NSLog(@"Letra = %c\n",i); } &lt;/code&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;2010-08-02 02:22:27.923 pruebas[910:207] Contador = b&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;2010-08-02 02:22:27.924 pruebas[910:207] Contador = c&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;2010-08-02 02:22:27.925 pruebas[910:207] Contador = d&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;2010-08-02 02:22:27.925 pruebas[910:207] Contador = e&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Otra versión:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;for (char i='b'; i&lt;'l';i=i+2) {    NSLog(@"Letra = %c\n",i);    } &lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#000066;"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.929 pruebas[910:207] Letra = d&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.930 pruebas[910:207] Letra = f&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.930 pruebas[910:207] Letra = h&lt;/b&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo"&gt;&lt;b&gt;2010-08-02 02:22:27.931 pruebas[910:207] Letra = j&lt;/b&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Como ves solamente el bucle for da mucho juego!!!!&lt;/span&gt; :D&lt;br /&gt;&lt;/div&gt;&lt;/code&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-6839339782546359769?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J7LMxRiVjCVFSaWkkSbBT7MaaUk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J7LMxRiVjCVFSaWkkSbBT7MaaUk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/J7LMxRiVjCVFSaWkkSbBT7MaaUk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J7LMxRiVjCVFSaWkkSbBT7MaaUk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/JoE74YfZAUw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/6839339782546359769/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/08/sentencias-iterativas-en-objetive-c.html#comment-form" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6839339782546359769?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6839339782546359769?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/JoE74YfZAUw/sentencias-iterativas-en-objetive-c.html" title="Sentencias iterativas en objetive-C: Bucle FOR" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/08/sentencias-iterativas-en-objetive-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4HRno5eCp7ImA9Wx5TFUU.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-8376118833457577112</id><published>2010-07-22T11:22:00.000+02:00</published><updated>2010-07-31T16:52:17.420+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-31T16:52:17.420+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="objetive-c" /><title>Diferencias entre NSInteger , int y NSNumber</title><content type="html">Estos tres tipos de datos se usan en objective C pero aunque parezcan iguales entre algunos de ellos existen tanto diferencias como similitudes.&lt;br /&gt;&lt;br /&gt;Vamos a empezar por los tipos de datos NSInteger e int. ambos representan un dato de tipo entero y son tipos primitivos por lo que no es necesario reservar memoria dinámicamente e inicializarlos mediante el método init antes de empezar a usarlos. simplemente se declaran y si se quiere se les asigna un valor.&lt;br /&gt;&lt;br /&gt;En concreto el tipo int es para arquitectura de 32 bits y se ha heredado del lenguaje C, por el contrario NSInteger es de objective-C y puede tener un tamaño u otro siendo esa su principal diferencia por lo que en nuestro caso para el desarrollo de apps para Iphone/Ipod/Ipad nos resulta ajeno y podemos usar cualquiera de los dos.&lt;br /&gt;&lt;br /&gt;En cambio el tipo de dato NSNumber es un objeto que almacena un dato numérico ya sea entero/real/double... y por ello es necesario usar punteros ya que pertenece a objective-c sí hay que reservar memoria dinámicamente y a continuación inicializarlos, ya hemos visto en otros post que lo podemos inicializar a un valor concreto y sino la inicialización por defecto se realiza llamando al método init (con este método el objeto apunta a c)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int myEntero = 4;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;NSInteger miEntero_2 = 5&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;NSNumber *miObjetoNumerico = [[NSNumber alloc] initWithInt:40];&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;// En este caso lo inicializamos con un valor de tipo entero en concreto el 40&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;sino la inicialización por defecto sería:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;NSNumber *miObjetoNumerico = [[NSNumber alloc] init];&lt;/span&gt;&lt;/code&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:monospace;font-size:100%;color:#000099;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Sobre las dudas de "&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="line-height: 20px; font-family:arial, helvetica, tahoma;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&lt;b&gt;por ello es necesario usar punteros ya que pertenece a objective-c&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;b&gt;" &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;fue un despiste, ya que es habitual el uso de punteros en objetive C.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;¡Gracias a los que nos avisaron del error!&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-8376118833457577112?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5xbwhCX4vUsWFkxuUtv6XR7-7TI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5xbwhCX4vUsWFkxuUtv6XR7-7TI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5xbwhCX4vUsWFkxuUtv6XR7-7TI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5xbwhCX4vUsWFkxuUtv6XR7-7TI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/uRn63ozKZas" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/8376118833457577112/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/diferencias-entre-nsinteger-int-y.html#comment-form" title="25 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8376118833457577112?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8376118833457577112?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/uRn63ozKZas/diferencias-entre-nsinteger-int-y.html" title="Diferencias entre NSInteger , int y NSNumber" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>25</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/diferencias-entre-nsinteger-int-y.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QDRns6fip7ImA9WxFaF0U.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-1112125036196051248</id><published>2010-07-22T10:30:00.000+02:00</published><updated>2010-07-22T11:02:57.516+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-22T11:02:57.516+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fundamentos de programacion" /><title>Programación desde Cero: y entonces.. ¿qué es un Objeto?</title><content type="html">La palabra objeto estarás harto de escucharla en cualquier libro de programación pues bien, una vez que sabemos lo que es una clase vamos a ver que es un objeto.&lt;br /&gt;&lt;br /&gt;La propia definición de objeto lo define como instancia de una clase. Aunque suene un poco raro en realidad un objeto es una clase en la cual lo datos que en la clase solo se indican por ejemplo en el caso del coche: pintura, motor, kilometraje ya en el objeto se les da un valor.&lt;br /&gt;&lt;br /&gt;Por ejemplo Un BmwSerie1 es un objeto de la clase Coche pero ¿en qué se diferencia de éste?.  En el BmwSerie1 sabemos que el color es blanco, motor 146CV y kilometraje 20.000 ya no tenemos un coche genérico que es lo que es la clase sino que tenemo un coche en concreto y le hemos llamado BmwSerie1.&lt;br /&gt;&lt;br /&gt;Por lo que a las cualidades de una clase las vamos a denominar ATRIBUTOS, ¿qué pasa con esos atributos en un objeto? pues que toman un valor.&lt;br /&gt;&lt;br /&gt;En el caso del coche los atributos son color, motor y kilometraje y ya hemos visto que para el objeto BmwSerie1 toma valores concretos de ese coche.&lt;br /&gt;&lt;br /&gt;Pero hay una cosa que se nos está quedando en el tintero. En el post anterior hablamos de que ese coche genérico que es la clase realizaba una serie de acciones que las realizaban todos los coches independientemente de sus atributos, por decirlo de otra manera. Mi coche X arranca y frena y el coche Y de mi vecino también arranca y frena aunque sean de colores diferentes, distinto motor y diferente kilometraje por lo que a esas acciones que pueden realizar cualquier objeto las vamos a denominas métodos.&lt;br /&gt;&lt;br /&gt;En resumidas cuentas siempre que creemos un objeto de la clase Coche tendremos los mismos métodos que la clase (en este caso arrancar, frenar...)&lt;br /&gt;&lt;br /&gt;¿Qué tal ambos conceptos un poco más claros? Dejarme comentarios :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-1112125036196051248?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YM0vPA7HOM6-pJgR0YAVhJTVq5s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YM0vPA7HOM6-pJgR0YAVhJTVq5s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YM0vPA7HOM6-pJgR0YAVhJTVq5s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YM0vPA7HOM6-pJgR0YAVhJTVq5s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/Ewb7pYnP7-o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/1112125036196051248/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/programacion-desde-cero-y-estonces-que.html#comment-form" title="9 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/1112125036196051248?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/1112125036196051248?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/Ewb7pYnP7-o/programacion-desde-cero-y-estonces-que.html" title="Programación desde Cero: y entonces.. ¿qué es un Objeto?" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/programacion-desde-cero-y-estonces-que.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8AR3w_cSp7ImA9WxFaF0g.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-4803778836886397056</id><published>2010-07-22T00:45:00.001+02:00</published><updated>2010-07-22T01:10:46.249+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-22T01:10:46.249+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="clases" /><category scheme="http://www.blogger.com/atom/ns#" term="fundamentos de programacion" /><title>Programación desde Cero: ¿Qué es una clase?</title><content type="html">En muchísimos libros y manuales habrás visto que centenares de veces hacen referencia al concepto de clase y habrás pensado que a que pueden hacer referencia. Bueno voy a ver si puedo hacerme entender bien.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por ejemplo un clase podría ser un coche que es un objeto genérico no? si ya hablamos de un renault o bwm lo que estamos hablando es de un coche concreto cada uno con sus características particulares. Bueno pues una clase es exactamente eso una manera de agrupar una serie de cosas que cumplen un cierto de carácterísticas comunes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Independientemente de que tengamos un renaul o un bmw ambos tienen 4 ruedas, un volante.... que son características y ambos arrancan o paran estos son acciones que realizan todos los coches.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otra manera para definir una clase es que en el caso del coche todas las características y cualidades básicas de un coche es la plantilla para el renault o el bmw lo que pasa que después por ejemplo el renanult será rojo y el bmw blanco.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esto solo tenéis que haber entendido el concepto básico de Clase. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si no ha quedado muy claro enviarme un email(pynsoftware@gmail.com) y lo explico de otra manera :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-4803778836886397056?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EpvlXDn-UowLsX5Q79FFack4Ilk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EpvlXDn-UowLsX5Q79FFack4Ilk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EpvlXDn-UowLsX5Q79FFack4Ilk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EpvlXDn-UowLsX5Q79FFack4Ilk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/SOnhysyBc_E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/4803778836886397056/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/programacion-desde-cero-que-es-una.html#comment-form" title="4 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4803778836886397056?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4803778836886397056?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/SOnhysyBc_E/programacion-desde-cero-que-es-una.html" title="Programación desde Cero: ¿Qué es una clase?" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/programacion-desde-cero-que-es-una.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EAQXk4fip7ImA9WxFaF0g.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-9207005534900969001</id><published>2010-07-22T00:19:00.000+02:00</published><updated>2010-07-22T00:34:00.736+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-22T00:34:00.736+02:00</app:edited><title>¿Por qué cuesta más programar para el Iphone?</title><content type="html">En varios de vuestros comentarios se repite lo mismo es una plataforma diferente, todo es muy raro, he de deciros que eso son sensaciones y sentimientos habituales tanto si no has programado mucho como si tienes una solida formación en .net, java o php llegas a desarrollar con xcode y parece que todos esos años de experiencia y sólida formación universitaria se vienen abajo.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nada más lejos de la realidad, solo viendo un nuevo proyecto en el XCode nos damos cuenta de que estamos adentrándonos en un nuevo mundo de programación y que lo que sabíamos puede servinos poco en el mejor de los casos o nada.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solo deciros que no os desanimeis que eso nos ha pasado a todos y para eso estamos aqui.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También quería agradeceros el apoyo que nos habéis dado a través de vuestros comentarios :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nuestro mail ya sabéis que es pynsoftware@gmail.com&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-9207005534900969001?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/w8O_NQuibP004G3fX6OFghR06_Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w8O_NQuibP004G3fX6OFghR06_Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/w8O_NQuibP004G3fX6OFghR06_Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/w8O_NQuibP004G3fX6OFghR06_Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/jIf_KD--5Y8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/9207005534900969001/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/por-que-cuesta-mas-programar-para-el.html#comment-form" title="8 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/9207005534900969001?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/9207005534900969001?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/jIf_KD--5Y8/por-que-cuesta-mas-programar-para-el.html" title="¿Por qué cuesta más programar para el Iphone?" /><author><name>PynSoft</name><uri>http://www.blogger.com/profile/10290786168468723833</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>8</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/por-que-cuesta-mas-programar-para-el.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EDQn8zfip7ImA9WxFaFkw.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-2136967684120377296</id><published>2010-07-20T11:29:00.000+02:00</published><updated>2010-07-20T11:54:33.186+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-20T11:54:33.186+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iphone sdk" /><title>La gestión memoria (I)</title><content type="html">La &lt;span style="font-weight: bold;"&gt;gestión de memoria&lt;/span&gt; es fundamental hacerlo de manera correcta cuando desarrollemos cualquier aplicación tanto para iphone/ipod e ipad ya que aunque éste último disponga de mayor memoria que los anteriores si no se tiene un poco de cuidado se puede igualmente llegar a saturar y como consecuencia nuestra aplicación se cierra inesperadamente pero que no cunda el pánico ya que una vez que se vuelva a &lt;span style="font-weight: bold;"&gt;iniciar&lt;/span&gt; la aplicación nuestra memoria estará limpia como si tal eventualidad no hubiera sucedido. A diferencia de java en iphone sdk no disponemos de un&lt;span style="font-weight: bold;"&gt; recolector de basura&lt;/span&gt; que se encargue de ir liberando la memoria de las variables que no se usen.&lt;br /&gt;&lt;br /&gt;Como ya vimos en un post anterior los objetos, arrays.... son &lt;span style="font-weight: bold;"&gt;punteros&lt;/span&gt; a tipos de datos o estructuras de datos y que hay que reservar memoria para el uso de los mismos por ello una vez que finalicemos el uso de una determinada variable es conveniente liberar la porción de memoria que tenía asignada para que pueda ser reutilizada por otra parte de la aplicación y de esa manera evitar que los recursos se vayan saturando por ello deberemos llamar al método&lt;span style="font-weight: bold;"&gt; release&lt;/span&gt; cuando queramos liberar la memoria de un determinado elemento.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;NSInteger entero = [[NSInteger alloc] initWithInt:30]; &lt;span style="color: rgb(0, 102, 0);"&gt;// Reservamos e inicializamos el objeto de tipo entero&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;// codigo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[entero release] &lt;span style="color: rgb(0, 102, 0);"&gt;// liberamos la memoria ocupada por el objeto&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-2136967684120377296?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aJsCPIuuttHJQ5hnX5Kf07pAlJ0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aJsCPIuuttHJQ5hnX5Kf07pAlJ0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aJsCPIuuttHJQ5hnX5Kf07pAlJ0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aJsCPIuuttHJQ5hnX5Kf07pAlJ0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/ay9m6uizg00" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/2136967684120377296/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/la-gestion-memoria-i.html#comment-form" title="11 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/2136967684120377296?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/2136967684120377296?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/ay9m6uizg00/la-gestion-memoria-i.html" title="La gestión memoria (I)" /><author><name>Pablo</name><uri>http://www.blogger.com/profile/12826422107526580998</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>11</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/la-gestion-memoria-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUHQ3czfyp7ImA9WxFaFk8.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-5890996044442028047</id><published>2010-07-20T10:34:00.000+02:00</published><updated>2010-07-20T12:03:52.987+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-20T12:03:52.987+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trucos y consejos" /><category scheme="http://www.blogger.com/atom/ns#" term="xcode" /><title>XCode: La Consola</title><content type="html">La consola es un recurso muy útil que nos facilita mucho la &lt;span style="font-weight: bold;"&gt;tarea de depuración&lt;/span&gt; ya que cuando estamos programando una aplicación y sobre todo al principio se producen errores comunes que desconocemos que ha pasado y de esa manera podemos seguir la traza que ha seguido el programa ya que como hemos visto en el video los projectos tienen muchos ficheros de diferente naturaleza y así podemos ir viendo por donde va pasando al ejecución o donde se produce la excepción que hace que nuestra app se cierre de manera inesperada, para escribir las trazas en el programa se hace uso de la clase &lt;span style="font-weight: bold;"&gt;NSLog &lt;/span&gt;y pasandole como parámetro la cadena que queremos que escriba en la consola. Como todas las cadenas en objective-C el formato de la misma es @"mi mensaje" y de esta manera se escribirá en la consola la cadena mi mensaje cuando pase la ejecución por dicho punto añadiendo información adicional como fecha, hora y aplicación que estamos ejecutando&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;NSLog(@"mi Mensaje");&lt;br /&gt;&lt;br /&gt;Por la consola el mensaje se mostraría de la siguiente manera:&lt;br /&gt;2010-07-20 10:51:28.028 ejemplo[4200:b03] mi Mensaje&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;También es interesante destacar que con el NSLog se pueden mostrar diferentes valores y cadenas de texto con formato al igual que se hace en c se coloca en la cadena de texto el indicador &lt;span style="font-weight: bold;"&gt;%d &lt;/span&gt;para enteros y &lt;span style="font-weight: bold;"&gt;%f&lt;/span&gt; para datos float y como parámetros sucesivos se van a &lt;span style="font-weight: bold;"&gt;pasar las variables &lt;/span&gt;que queramos mostrar en el mismo orden que hemos puesto los indicadores correspondientes y para que haya un salto de línea se pone el indicador&lt;span style="font-weight: bold;"&gt; /n.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int entero = 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;float decimal = 4.3;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;NSLog(@"Vamos a mostrar un entero %d/n y un decimal &amp;amp;f",entero,decimal);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Por la consola el mensaje se mostraría de la siguiente manera:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;2010-07-20 11:05:28.028 ejemplo[8720:b16] Vamos a mostrar un entero 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;y un decimal 4.3&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-5890996044442028047?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C58RxS3EG2IKCFPOa3zQ1AdaTiM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C58RxS3EG2IKCFPOa3zQ1AdaTiM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C58RxS3EG2IKCFPOa3zQ1AdaTiM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C58RxS3EG2IKCFPOa3zQ1AdaTiM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/-0FlE3ogLZs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/5890996044442028047/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/xcode-la-consola.html#comment-form" title="5 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/5890996044442028047?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/5890996044442028047?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/-0FlE3ogLZs/xcode-la-consola.html" title="XCode: La Consola" /><author><name>Pablo</name><uri>http://www.blogger.com/profile/12826422107526580998</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/xcode-la-consola.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MAR3Y5eyp7ImA9WxFaFkw.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-2379404548254017667</id><published>2010-07-20T10:19:00.000+02:00</published><updated>2010-07-20T10:44:06.823+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-20T10:44:06.823+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trucos y consejos" /><category scheme="http://www.blogger.com/atom/ns#" term="objetive-c" /><title>Objective C: Los comentarios</title><content type="html">Cuando esta entrada parezca trivial los &lt;span style="font-weight: bold;"&gt;comentarios&lt;/span&gt; tienen mucha más importancia de la que se le da, en mis años de experiencia de programador me he dado cuenta de que no es una práctica muy usada, quiza sea por problemas de tiempo pero he de decir además que el hecho de usar comentarios no es trabajar en vano ya que  como programadores a lo largo de nuestra vida laboral pasan por nuestras manos muchísimos proyectos, cada uno de su padre y de su madre y el uso de comentarios hace que la resolución de incidencias sea más rápida ya que con esa pequeña práctica el programador que hizo el código nos transmite de manera&lt;span style="font-weight: bold;"&gt; clara &lt;/span&gt;qué hizo y por qué lo hizo asi, por otro lado en nuestro propio código nos &lt;span style="font-weight: bold;"&gt;facilita&lt;/span&gt; los mantenimientos notablemente por ello os animo a que el uso de comentarios empiece a formar parte de vuestra manera de programar y sin extenderme mucho más o diré que en objective-c hay dos tipos de comentarios:&lt;br /&gt;&lt;br /&gt;// mediante este símbolo comentamos hasta el final de la línea desde donde se coloque.&lt;br /&gt;/* &lt;span style="font-style: italic;"&gt;bloque&lt;/span&gt; */ y mediante estos otros podemos comentar un &lt;span style="font-weight: bold;"&gt;bloque de código&lt;/span&gt; independientemente de que ocupe más de una línea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-2379404548254017667?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3KBRdFmH7hkGB9fxWLYLcSWj_Xw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3KBRdFmH7hkGB9fxWLYLcSWj_Xw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3KBRdFmH7hkGB9fxWLYLcSWj_Xw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3KBRdFmH7hkGB9fxWLYLcSWj_Xw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/0GrZU0GsJ5k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/2379404548254017667/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/objective-c-los-comentarios.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/2379404548254017667?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/2379404548254017667?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/0GrZU0GsJ5k/objective-c-los-comentarios.html" title="Objective C: Los comentarios" /><author><name>Pablo</name><uri>http://www.blogger.com/profile/12826422107526580998</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/objective-c-los-comentarios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcMRn85cCp7ImA9WxFaFkw.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-4474411187558265052</id><published>2010-07-20T10:06:00.000+02:00</published><updated>2010-07-20T10:54:47.128+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-20T10:54:47.128+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="objetive-c" /><title>Objective C: Los tipos de datos</title><content type="html">Como ya hemos visto en algún ejemplo usamos objetos para representar los &lt;span style="font-weight: bold;"&gt;tipos de datos en objective-C,&lt;/span&gt; por ejemplo para objetos con información de tipo entero usamos NSInteger para las cadenas de caracteres hacemos uso de la clase NSString pero a pesar de todo esto, objective-c cuenta con una serie de tipos de datos primitivos que se pueden usar de igual manera para realizar operaciones pero no será necesario ni reservar memoria e inicializarlos con los métodos tanto alloc como init como sucede con sus versiones correspondientes en objetos sino que se usan tal cual como en cualquier otro lenguaje de programación.  He de decir además que no todos tienen su versión en objeto sino que se usan tal cual como el &lt;span style="font-weight: bold;"&gt;void &lt;/span&gt;&lt;span&gt;o el &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;booleano&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Son los siguientes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; -&gt; Entero positivo o negativo&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;unsigned&lt;/span&gt; -&gt; Entero positivo&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;float&lt;/span&gt; -&gt; Números con decimales&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;double&lt;/span&gt; -&gt; Números decimales con doble precisión, normalmente este tipo de dato se usa cuando necesitamos tener un alto grado de precisión en los cálculos numéricos.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;char&lt;/span&gt; -&gt; Cáracter&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BOOL&lt;/span&gt; -&gt;Boolean, puede tomar diferentes tipos de valores: YES/NO, 1/0 , TRUE/FALSE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-4474411187558265052?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QT756KO8MmrSM_9-_lk6WgW-IiI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QT756KO8MmrSM_9-_lk6WgW-IiI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QT756KO8MmrSM_9-_lk6WgW-IiI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QT756KO8MmrSM_9-_lk6WgW-IiI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/JQTMdgW0dRc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/4474411187558265052/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/objective-c-los-tipos-de-datos.html#comment-form" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4474411187558265052?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4474411187558265052?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/JQTMdgW0dRc/objective-c-los-tipos-de-datos.html" title="Objective C: Los tipos de datos" /><author><name>Pablo</name><uri>http://www.blogger.com/profile/12826422107526580998</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/objective-c-los-tipos-de-datos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMNRXkzfyp7ImA9Wx5QF0o.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-7576841475683318507</id><published>2010-07-15T19:57:00.001+02:00</published><updated>2010-09-06T14:34:54.787+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-06T14:34:54.787+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><title>Tutorial 3 - Programación iphone - Hola Mundo!</title><content type="html">Hola a tod@s ya tenémos nuevo tutorial de desarrollo de aplicaciones para el iphone!!! Espero que os guste.&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6egvHAXACFo&amp;amp;hl=es_ES&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/6egvHAXACFo&amp;amp;hl=es_ES&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Lo he subido también a Vimeo.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/14692494" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href="http://vimeo.com/14692494"&gt;Tutorial 3 Hola Mundo // pynsoft.com // www.iphoneprogramacion.com&lt;/a&gt; from &lt;a href="http://vimeo.com/user4647928"&gt;Pynsoft&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;El código fuente de este tutorial está disponible en:  &lt;a href="http://sites.google.com/site/pynsoftware/Resources"&gt;Pynsoft/Recursos&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-7576841475683318507?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FnWtwuS0pGPWSaDm6-zP5Lr6anQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FnWtwuS0pGPWSaDm6-zP5Lr6anQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FnWtwuS0pGPWSaDm6-zP5Lr6anQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FnWtwuS0pGPWSaDm6-zP5Lr6anQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/0DJNgmEQSys" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/7576841475683318507/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/tutorial-3-programacion-iphone-hola.html#comment-form" title="14 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/7576841475683318507?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/7576841475683318507?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/0DJNgmEQSys/tutorial-3-programacion-iphone-hola.html" title="Tutorial 3 - Programación iphone - Hola Mundo!" /><author><name>PynSoft</name><uri>http://www.blogger.com/profile/10290786168468723833</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>14</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/tutorial-3-programacion-iphone-hola.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUCRXk_fyp7ImA9Wx5QF0o.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-7037775152277628026</id><published>2010-07-05T09:04:00.002+02:00</published><updated>2010-09-06T14:31:04.747+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-06T14:31:04.747+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="interface builder" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><title>Tutorial 2 - Programación iphone - INTERFACE BUILDER</title><content type="html">Hola de nuevo, tenémos un nuevo tutorial sobre el Interface Builder, espero que os resulte útil, en este tutorial vamos a realizar la parte visual para el hola mundo que terminaremos en el siguiente tutorial.&lt;br /&gt;
&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Whf8iC2fC34&amp;amp;hl=es_ES&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Whf8iC2fC34&amp;amp;hl=es_ES&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Lo he subido también a Vimeo.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/14692196" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/14692196"&gt;Tutorial 2 Introducción al iphone sdk INTERFACE BUILDER// pynsoft.com // www.iphoneprogramacion.com&lt;/a&gt; from &lt;a href="http://vimeo.com/user4647928"&gt;Pynsoft&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
El código fuente de este tutorial está disponible en:  &lt;a href="http://sites.google.com/site/pynsoftware/Resources"&gt;Pynsoft/Recursos&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-7037775152277628026?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/he3cFxUAUCCLlUwth4JWtZidalU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/he3cFxUAUCCLlUwth4JWtZidalU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/he3cFxUAUCCLlUwth4JWtZidalU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/he3cFxUAUCCLlUwth4JWtZidalU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/Msli-9ETVWU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/7037775152277628026/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/07/hola-de-nuevo-tenemos-un-nuevo-tutorial.html#comment-form" title="11 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/7037775152277628026?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/7037775152277628026?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/Msli-9ETVWU/hola-de-nuevo-tenemos-un-nuevo-tutorial.html" title="Tutorial 2 - Programación iphone - INTERFACE BUILDER" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>11</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/07/hola-de-nuevo-tenemos-un-nuevo-tutorial.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQBRHo7eyp7ImA9Wx5QF0o.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-8042474338764663307</id><published>2010-06-22T16:30:00.001+02:00</published><updated>2010-09-06T14:32:35.403+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-06T14:32:35.403+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iphone sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><title>¿Cómo instalar el iphone sdk ?</title><content type="html">Hola a tod@s aquí os dejo este nuevo tutorial que he preparado orientado a la instalación del entorno de desarrollo para desarrollar aplicaciones para el iphone, un lector me lo sugirió y la verdad es que es muy buena idea.&lt;br /&gt;
&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DfFoZFRAVgk&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/DfFoZFRAVgk&amp;hl=es_ES&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;Lo he subido también a Vimeo.&lt;br /&gt;
&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/14677146" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/14677146"&gt;Como instalar el iphone sdk // foroiphoneprogramacion.com&lt;/a&gt; from &lt;a href="http://vimeo.com/user4647928"&gt;Pynsoft&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-8042474338764663307?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NoZN_Lk_AXa7NF_mD8-SAQxmlTg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NoZN_Lk_AXa7NF_mD8-SAQxmlTg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NoZN_Lk_AXa7NF_mD8-SAQxmlTg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NoZN_Lk_AXa7NF_mD8-SAQxmlTg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/-Nn6goLJ5D0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/8042474338764663307/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/06/como-instalar-el-iphone-sdk.html#comment-form" title="15 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8042474338764663307?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8042474338764663307?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/-Nn6goLJ5D0/como-instalar-el-iphone-sdk.html" title="¿Cómo instalar el iphone sdk ?" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>15</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/06/como-instalar-el-iphone-sdk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYHQnk8fSp7ImA9Wx5QF0o.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-4629224574092040563</id><published>2010-06-20T23:43:00.001+02:00</published><updated>2010-09-06T14:28:53.775+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-06T14:28:53.775+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="xcode" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><title>Tutorial 1 - Introducción al iphone sdk - XCODE</title><content type="html">Hola a tod@s aquí os dejo el primer videotutorial de programación para el iphone, espero que os guste, cualquier sugerencia, dejarme un comentario.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PHvLcP4Z2UA&amp;hl=en_US&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PHvLcP4Z2UA&amp;hl=en_US&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Subido también a Vimeo.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder="0" height="300" src="http://player.vimeo.com/video/14677770" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;a href="http://vimeo.com/14677770"&gt;Tutorial 1 Introducción al iphone sdk -- XCODE // pynsoft.com // www.iphoneprogramacion.com&lt;/a&gt; from &lt;a href="http://vimeo.com/user4647928"&gt;Pynsoft&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-4629224574092040563?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f2d_sJCFviusD59VIT5OgSPnmvM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f2d_sJCFviusD59VIT5OgSPnmvM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f2d_sJCFviusD59VIT5OgSPnmvM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f2d_sJCFviusD59VIT5OgSPnmvM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/Op-lcQeR9_4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/4629224574092040563/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/06/tutorial-1-introduccion-al-iphone-sdk_20.html#comment-form" title="14 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4629224574092040563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/4629224574092040563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/Op-lcQeR9_4/tutorial-1-introduccion-al-iphone-sdk_20.html" title="Tutorial 1 - Introducción al iphone sdk - XCODE" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>14</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/06/tutorial-1-introduccion-al-iphone-sdk_20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8DQ3k7cCp7ImA9WxFRE0o.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-2357594455786016370</id><published>2010-04-27T15:55:00.000+02:00</published><updated>2010-04-27T16:01:12.708+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-27T16:01:12.708+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><title>Los IBOutlet e IBAction</title><content type="html">Los outlets y los actions son la manera que tenemos en programación para el iphone de conectar los elementos visuales (interface) con la funcionalidad de la aplicación, en función de cómo querámos controlar éstos elementos se usará o bien un outlet o un action.&lt;br /&gt;&lt;br /&gt;Por ejemplo si lo que queremos es modificar un control visual por ejemplo poner texto en una label o recuperar info de la pantalla para ello se usan los outles, por el contrario si lo que queremos es que en función de un evento se ejecute una porción de código como por ejemplo que se realice una acción al pulsar sobre un botón, eso sería un action, pero... qué pasaría si quisieramos modificar en tiempo de ejecución por ejemplo el texto de un botón o su color, que también habría que definirlo como un outlet.&lt;br /&gt;&lt;br /&gt;En el próximo post colgaré un video de un holamundo hecho en el iphone y de esa manera veremos como se realiza esta conexión entre el interfaz también llamado xib o nib y nuestro código.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-2357594455786016370?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mmo0QKvSs4sqjm94v_njeQMcjtY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mmo0QKvSs4sqjm94v_njeQMcjtY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mmo0QKvSs4sqjm94v_njeQMcjtY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mmo0QKvSs4sqjm94v_njeQMcjtY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/VPcGoooMhaY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/2357594455786016370/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/04/los-iboutlet-e-ibaction.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/2357594455786016370?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/2357594455786016370?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/VPcGoooMhaY/los-iboutlet-e-ibaction.html" title="Los IBOutlet e IBAction" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/04/los-iboutlet-e-ibaction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUMQ3g8cSp7ImA9WxFREE4.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-6140360847627115045</id><published>2010-04-23T17:19:00.000+02:00</published><updated>2010-04-23T17:58:02.679+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-23T17:58:02.679+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="objetive-c" /><title>Objective-C : Métodos especiales: ALLOC e INIT</title><content type="html">&lt;b&gt;El método ALLOC&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Es un método de clase que se encarga de reservar memoria para un objeto concreto en función de la clase que lo invoque, éste método no es necesario implementar absolutamente nada ya que todos los objetos heredan de la clase NSObject.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Persona persona = [Persona alloc];&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;El método INIT&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El método init es por el contrario un método de instancia y se encargará de inicializar las variables/atributos, este método se puede implementar o invocar al método init de la clase padre (NSObject), por otro lado se pueden crear los métodos de inicialización como se quiera, lo que si es cierto que suelen seguir la nomenclatura initWith(algo identificativo)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;- (id) InitWithInt: (int)valor_edad {&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;div&gt;           if (self == [super init]{&lt;/div&gt;&lt;div&gt;                edad = valor_edad;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/code&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como ves en el ejemplo le pasamos un valor entero para inicializar en concreto la edad, por otro lado lo que devuelve es una referencia al objeto actual por decirlo de alguna manera cuando se devuelve un tipo de dato id se devuelve un objeto de la clase actual.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finalmente con [super init] inicializas el objeto invocando al método init de la clase padre y éste te devolverá una refencia al objeto actual que será el mismo que se almacena en la variable self cuyo significado es como el this de java. Y una vez nos hemos asegurado que estamos en el objeto correcto se procede a inicializar las variables, en este caso la edad.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-6140360847627115045?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xGFauTsIAETdjxFF4jgg2twzVCE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xGFauTsIAETdjxFF4jgg2twzVCE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xGFauTsIAETdjxFF4jgg2twzVCE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xGFauTsIAETdjxFF4jgg2twzVCE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/5FvVCXuaCUc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/6140360847627115045/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/04/objective-c-metodos-especiales-alloc-e.html#comment-form" title="3 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6140360847627115045?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/6140360847627115045?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/5FvVCXuaCUc/objective-c-metodos-especiales-alloc-e.html" title="Objective-C : Métodos especiales: ALLOC e INIT" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/04/objective-c-metodos-especiales-alloc-e.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cMQ34zeip7ImA9WxFREE4.&quot;"><id>tag:blogger.com,1999:blog-8570809559169677654.post-8736828647075352014</id><published>2010-04-23T12:32:00.000+02:00</published><updated>2010-04-23T17:04:42.082+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-23T17:04:42.082+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="objetive-c" /><title>Objective-C : Variables</title><content type="html">En objetive-C las variables son normalmente punteros que apuntan a objetos independientemente del tipo que sea, bien es cierto que tenemos tipos primitivos como el int pero también tenemos su versión en objeto que es la clase NSInteger, por ello al igual que ocurriá en C cuando estamos hablando de punteros es inevitable tener que hablar de la gestión de memoria ya que se hace de manera manual, por lo tanto cuando tengamos una variable de tipo puntero será necesario antes de usarla reservar memoria (se hará con el método alloc) y una vez que hemos dejado de usarla se usará el método release para liberar la memoria que ocupe. Estos son unos conceptos básicos a la hora de desarrollar una aplicación ya que el iphone tiene limitada la memoria como hemos indicado en otro post por lo tanto todo lo que podamos hacer para evitar ocupar recursos sin necesidad será bien recibido. De todas maneras debido a la importancia de este concepto entraremos en profundidad más adelante.&lt;br /&gt;&lt;br /&gt;Finalmente en objective-C a parte de reservar memoria es necesario inicializar los objetos mediante el método init del objeto correspondiente en el caso de que creemos una clase y no queramos tener ninguna inicialización particular, como todos los objetos heredan de NSObject se invoca al init del padre ( [super init] ).&lt;br /&gt;&lt;br /&gt;Para los objetos de uso más habitual no es necesario hacerlo por lo que se puede hacer:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;NSINteger* entero = 4;&lt;br /&gt;&lt;br /&gt;NSString* cadena = @"Hola";&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;En el caso en el cual la inicialización sea dinámica esta manera no será válida y es necesario primeramente realizar un alloc y después el init.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Visibilidad&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Al igual que en java en objective-c se puede limitar la visibilidad y el acceso de las variables mediante el uso de las directivas @public para variables accesibles desde cualquier clase de la aplicación y la directiva @private para variables accesibles SOLO desde la propia clase y desde las clases que hereden de la misma.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8570809559169677654-8736828647075352014?l=helloworldiphone.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OyaRFbB6bkr8AU_RvOwcj5oBO98/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OyaRFbB6bkr8AU_RvOwcj5oBO98/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OyaRFbB6bkr8AU_RvOwcj5oBO98/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OyaRFbB6bkr8AU_RvOwcj5oBO98/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HolaMundoIphone/~4/qGBM5fFqRI4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helloworldiphone.blogspot.com/feeds/8736828647075352014/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://helloworldiphone.blogspot.com/2010/04/objective-c-variables.html#comment-form" title="4 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8736828647075352014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8570809559169677654/posts/default/8736828647075352014?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HolaMundoIphone/~3/qGBM5fFqRI4/objective-c-variables.html" title="Objective-C : Variables" /><author><name>Noemí</name><uri>http://www.blogger.com/profile/14960659929960515077</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://4.bp.blogspot.com/_k-NGdCaDzgQ/TIDcloBvbjI/AAAAAAAABoM/0pWbEsuQxWQ/S220/92827.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://helloworldiphone.blogspot.com/2010/04/objective-c-variables.html</feedburner:origLink></entry></feed>

