<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iPhone and Go - Sviluppare iPhone &#187; Cocoa</title>
	<atom:link href="http://www.iphoneandgo.it/tag/cocoa/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iphoneandgo.it</link>
	<description>Dall&#039; ABC all&#039; SDK, il vostro laboratorio online per un software iPhone.</description>
	<lastBuildDate>Sun, 08 Aug 2010 19:34:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cos&#8217;e&#8217; Cocoa!. Da: &#8216;Cocoa Programming for Mac&#8217; di A. Hillegass un po&#8217; di Storia!</title>
		<link>http://www.iphoneandgo.it/2008/12/12/cose-cocoa-da-cocoa-programming-for-mac-di-a-hillegass-un-po-di-storia/</link>
		<comments>http://www.iphoneandgo.it/2008/12/12/cose-cocoa-da-cocoa-programming-for-mac-di-a-hillegass-un-po-di-storia/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 20:29:07 +0000</pubDate>
		<dc:creator>Stefano Lo Duca</dc:creator>
				<category><![CDATA[Advanced]]></category>
		<category><![CDATA[Teoria di base]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Libri]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=1357</guid>
		<description><![CDATA[Ho scelto di raccontarvi questa storia perchè credo sia importante non solo studiare volumi e volumi di argomenti tecnici, spesso tediosi, di difficile memorizzazione (se non con ore e ore di prove pratiche)ma anche capire le origini delle cose, dei nomi, dei momenti e dei motivi che danno vita a tutte le cose che noi [...]]]></description>
			<content:encoded><![CDATA[<p>Ho scelto di raccontarvi questa storia perchè credo sia importante non solo studiare volumi e volumi di argomenti tecnici, spesso tediosi, di difficile memorizzazione (se non con ore e ore di prove pratiche)ma anche capire le origini delle cose, dei nomi, dei momenti e dei motivi che danno vita a tutte le cose che noi ci troviamo di fronte quotidianamente.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/12/vespa2.png"><img class="aligncenter size-medium wp-image-1358" title="vespa2" src="http://www.iphoneandgo.it/wp-content/uploads/2008/12/vespa2-300x241.png" alt="" width="430" height="345" /></a></p>
<p><span id="more-1357"></span></p>
<p>Tra i primi articoli pubblicati ho introdotto il sistema operativo dell&#8217;iPhone e le sue tecnologie alle quali vi rimando per capire cosa rappresenta &#8220;Cocoa&#8221;:</p>
<p><a title="read mroe about Teoria: Il sistema operativo iPhone OS e la sua tecnologia: Core OS, Core Service, Media e Cocoa Touch: prima parte." href="../2008/09/01/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-core-os-core-service-media-e-cocoa-touch-prima-parte-n5/">Teoria: Il sistema operativo iPhone OS e la sua tecnologia: Core OS, Core Service, Media e Cocoa Touch: prima parte.</a></p>
<p><a title="read mroe about Teoria: Il sistema operativo iPhone OS e la sua tecnologia: schema livelli iPhone OS: seconda parte" href="../2008/09/07/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-schema-livelli-iphone-os-seconda-parte-n6/">Teoria: Il sistema operativo iPhone OS e la sua tecnologia: schema livelli iPhone OS: seconda parte</a></p>
<p>Ora parleremo, prendendo spunto dal libro sopra citato, come e&#8217; nato &#8220;cocoa&#8221;.</p>
<p>Un giorno, ormai tanto tempo fa, in un garage due signori dal nome in comune Steve costituiscono la societa&#8217; Apple Computer. La societa&#8217; cresce velocemente e viene nominato John Sculley quale CEO della compagnia.</p>
<p>Nascono i primi conflitti e John toglie i poteri di controllo della societa&#8217; a Steve Jobs che poco dopo lascia la compagnia per costituire una nuova societa&#8217; chiamata NEXT Computer.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/12/jobs-next-computer.jpg"><img class="aligncenter size-medium wp-image-1365" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="jobs-next-computer" src="http://www.iphoneandgo.it/wp-content/uploads/2008/12/jobs-next-computer-248x300.jpg" alt="" width="248" height="300" /></a></p>
<p>NEXT era una società di brillanti ingegneri, era anni avanti in tecnologie di computer, il team di ingegneri sviluppo&#8217; computer, sistema operativo, stampanti, e una serie di tools (strumenti) di sviluppo. Sfortunatamente la massa non capi le potenzialita&#8217; e non vennero comprati abbastanza computer. La societa&#8217; nel 1993 venne chiusa e da NEXT Computer divenne NEXT Software. Il sistema operativo insieme agli strumenti di sviluppo continuarono a essere venduti sotto NextSTEP.</p>
<div id="attachment_1368" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/12/nextstep.jpg"><img class="size-medium wp-image-1368" title="nextstep" src="http://www.iphoneandgo.it/wp-content/uploads/2008/12/nextstep-300x225.jpg" alt="NeXTSTEP" width="300" height="225" /></a><p class="wp-caption-text">NeXTSTEP</p></div>
<p>NeXT utilizzo il sistema operativo Unix. Unix perchè era un sistema affidabile, era un sistema molto più stabile di Windows della Microsoft o di Mac OS. Apple decise poi di far diventare Unix parte integrante del suo Mac OS X sotto il nome di Darwin (<a href="http://macosforge.org" target="_blank">http://macosforge.org</a>).</p>
<p>Ci furono molti sviluppi per NeXT con lo sviluppo di Window server per il sitema operativo, i PostScript di NeXTSTEP e CoreGraphics (conosciuto come Quarz) che venne scritto dagli sviluppatori per Mac OS X.</p>
<p>NeXTSTEP sviluppo&#8217; tutta una serie di librerie e strumenti (tools) che aiutarono i programmatori a gestire in maniera elegante e in modo migliore le window server (window server era un sistema che prendeva e gestiva gli eventi che arrivavano dagli utenti e li portava alle applicazioni; le applicazioni ripondevano indietro con i comandi alle window server per aggiornare quello che vedeva l&#8217;utente). Tutte queste librerie vennero chiamate &#8220;Frameworks&#8221;. Nel 1993 queste librerie (frameworks) vennero riviste riaggiornate e cambiarono il nome prima in OpenStep e poi a finire <strong>Cocoa</strong>.</p>
<p>Per cercare di spiegarvi meglio in un sistema Unix, Cocoa abilita le applicazoni a ricevere gli eventi dalle window server e restituisce a video i risultati.</p>
<p>Spero quantomeno in questo articolo di avervi dato un minimo di spiegazione. Non volevo addentrarmi troppo nel tecnico, lo scopo forse più personale era quello di darmi una spiegazione di perchè Cocoa !&#8230; Non ho trovato però perchè e&#8217; stato scelto questo nome &#8230;&#8230;.</p>
<p>A voi&#8230; Sir Lodux !</p>
<pre>iPhoneandGo.it - iphoneandgo@gmail.com</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.iphoneandgo.it/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2008/12/12/cose-cocoa-da-cocoa-programming-for-mac-di-a-hillegass-un-po-di-storia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gestione NSView in Cocoa. Per: &#8220;progetto cresciamo insieme&#8221; [n.1] Parte 2</title>
		<link>http://www.iphoneandgo.it/2008/10/13/gestione-nsview-in-cocoa-per-progetto-cresciamo-insieme-n1-parte-2/</link>
		<comments>http://www.iphoneandgo.it/2008/10/13/gestione-nsview-in-cocoa-per-progetto-cresciamo-insieme-n1-parte-2/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 19:36:40 +0000</pubDate>
		<dc:creator>Stefano Lo Duca</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Professionist]]></category>
		<category><![CDATA[Tutorial Pratici]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Eventi]]></category>
		<category><![CDATA[Source code]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=593</guid>
		<description><![CDATA[Secondo articolo per il "concorso : cresciamo insieme" n.1
Scritto da Alessandro - seconda parte


5. Interattività

 
  
16) A questo punto, iniziamo la parte interattiva. Cocoa dispone di una gran mole di funzioni per interagire con l&#8217;interfaccia grafica. Tra le più interessanti c&#8217;è senza dubbio l&#8217;interazione con tastiera e mouse: non solo è possibile intercettare [...]]]></description>
			<content:encoded><![CDATA[<pre class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;"><em>Secondo articolo per il "concorso : cresciamo insieme" n.1</em>
<address style="text-align: left;">Scritto da Alessandro - seconda parte</address>
<address style="text-align: left;"></address>

<span style="font-size: 19pt; font-family: Helvetica;">5. Interattività
</span></pre>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">16)</span></span></strong><span style="font-family: Helvetica;"> A questo punto, iniziamo la parte interattiva. Cocoa dispone di una gran mole di funzioni per interagire con l&#8217;interfaccia grafica. Tra le più interessanti c&#8217;è senza dubbio l&#8217;interazione con tastiera e mouse: non solo è possibile intercettare il clic del mouse, il doppio clic o il trascinamento &#8211; che è indispensabile per il famoso drag-and-drop &#8211; ma è anche possibile interpretare un tasto premuto sulla tastiera, o un tasto rilasciato, il che ricorda molto da vicino la pressione e il rilascio di un dito sulla tastiera di un iPhone! Ovviamente, non sono le stesse librerie, ma il concetto è lo stesso: intercettare l&#8217;input dell&#8217;utente (in gergo si chiama: interrupt) per permettere al software di &#8220;reagire&#8221; di conseguenza.<span id="more-593"></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Vedremo ora come intercettare la pressione dei tasti freccia: Su, Giù, Sinistra e Destra.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Per fare questo, si utilizza l&#8217;oggetto: NSEvent, che si occupa appunto della gestione degli eventi. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Affinché la nostra NSView AreaDiGioco.m possa riconoscere e quindi interpretare un evento, è tuttavia fondamentale aggiungere due piccole ma importanti funzioni: prima di tutto bisogna che la nostra AreaDiGioco diventi sensibile, poi che accetti un input o un evento: &#8211; (BOOL)becomeFirstResponder e &#8211; (BOOL)acceptsFirstResponder sono le funzioni che servono in questo caso.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Una volta aggiunte queste due piccole funzioni, si crea la funzione &#8211; (void)keyDown:(NSEvent *)theEvent vera e propria, che si occuperà di valutare ed elaborare il risultato dell&#8217;inpur da tastiera:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-20.png"><img class="aligncenter size-medium wp-image-594" title="immagine-20" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-20-300x268.png" alt="" width="300" height="268" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">17)</span></span></strong><span style="font-family: Helvetica;"> Adesso compilate il programma (Command+R) e provate a cliccare sui tasti freccia. Il risultato dovrebbe essere simile a questo: </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-19.png"><img class="aligncenter size-medium wp-image-595" title="immagine-19" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-19-300x122.png" alt="" width="300" height="122" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">18)</span></span></strong><span style="font-family: Helvetica;"> Semplice e meraviglioso, non trovate? A questo punto, facciamo in modo che premendo uno dei tasti freccia succeda qualcosa di più interessante! Alla pressione di uno dei tasti freccia, vogliamo che il riquadro corrispondente lampeggi in color magenta per poi tornare al colore originario.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Per fare questo, dobbiamo creare due diverse funzioni: la prima colorerà di magenta l&#8217;area corrispondente al pulsante premuto; la seconda, si occuperà di ridisegnare l&#8217;intera area della nostra finestra una volta rilasciato il tasto. Ma vediamo nel dettaglio come fare:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">usando il vecchio e sempre caro copia e incolla (universalmente noto come il miglior metodo per evitare errori di battitura!), assegno ad ogni tasto premuto un&#8217;area, e la passo alla prima funzione che vado a creare: &#8211; (void)flash:(NSBezierPath * )flash che si occuperà di colorare l&#8217;area di magenta.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 28pt; text-indent: -28pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;">- (<span style="color: #760f50;">void</span>)flash:(NSBezierPath *)flash {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span>[<span style="color: #760f50;">self</span> lockFocus];</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span>[[NSColor magentaColor] set];</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span><object type="application/x-shockwave-flash" data="fill" width="425" height="355" class="embedflash"><param name="movie" value="fill" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><small>(Please open the article to see the flash file or player.)</small></object>;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span>[[NSGraphicsContext currentContext] flushGraphics];</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"><span style="mso-tab-count: 1;"> </span>[<span style="color: #760f50;">self</span> unlockFocus];</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 56pt; text-indent: -56pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-size: 11pt; font-family: Monaco;"><span style="font-family: Times New Roman;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 28pt; text-indent: -28pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt 364.0pt 392.0pt 420.0pt 448.0pt 476.0pt 504.0pt 532.0pt 560.0pt 588.0pt 616.0pt 644.0pt 672.0pt 700.0pt 728.0pt 756.0pt 784.0pt 812.0pt 840.0pt 868.0pt 896.0pt 924.0pt 952.0pt 980.0pt 1008.0pt 1036.0pt 1064.0pt 1092.0pt 1120.0pt 1148.0pt 1176.0pt 1204.0pt 1232.0pt 1260.0pt 1288.0pt 1316.0pt 1344.0pt 1372.0pt 1400.0pt 1428.0pt 1456.0pt 1484.0pt 1512.0pt 1540.0pt 1568.0pt; mso-layout-grid-align: none;"><span style="font-family: Times New Roman;"><span style="font-size: 11pt; font-family: Monaco;">}</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Questa funzione utilizza un piccolo trucco, che potete leggere nel codice: prima di tutto, blocca l&#8217;area visualizzata; in secondo luogo disegna gli eventuali cambiamenti sopraggiunti; infine aggiorna il disegno della nostra NSView AreaDiGioco e sblocca la NSView lasciandola libera di ricevere nuovi input. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Questa procedura, che comincia con l&#8217;istruzione: [self lockFocus] e prosegue con: [[NSGraphicsContext currentContext] flushGraphics] per terninare con: [self unlockFocus] è valida universalmente, quando si tratta di disegnare con una NSView, perciò conoscerla è molto utile.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Una volta creata questa prima funzione, passiamo alla seconda: la funzione &#8211; (void)keyUp:(NSEvent *)theEvent. Molto simile alla funzione keyDown, questa funzione si occupa semplicemente di ridisegnare lo schermo com&#8217;era all&#8217;inizio. Anche qui, l&#8217;utilizzo del principio che comincia con [self lockFocus] è fondamentale.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a1.png"><img class="aligncenter size-medium wp-image-596" title="immagine-a1" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a1-300x280.png" alt="" width="300" height="280" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-size: 19pt; font-family: Helvetica;">6. Ottimizzazione</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">19)</span></span></strong><span style="font-family: Helvetica;"> Come avrete notato, alcune parti di codice sono ripetute più volte nel file AreaDiGioco.m: in diversi punti ho dovuto ripetere le dimensioni delle quattro zone colorate (verde, blu, giallo, rosso), creando non pochi problemi di lettura del codice e di mantenimento dello stesso. Certo, questo è un semplice tutorial che prevede solamente un paio di file, ma è buona prassi ottimizzare il codice sia per evitare possibili errori (scrivendo due volte la stessa cosa, siete davvero sicuri di averla scritta sempre uguale?) sia per facilitare il debug e la comprensione del codice stesso. Per ottimizzare il codice di questo esempio, è necessario accorgersi che le quattro zone da colorare sono oggetti a se stanti (non preoccupatevi, con un po&#8217; di pratica di programmazione OOP lo noterete subito), per cui è meglio, in questo caso, definire una volta sola queste quattro aree o NSBezierPath nel file AreaDiGioco.h, e richiamarle quando serve. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a2.png"><img class="aligncenter size-medium wp-image-597" title="immagine-a2" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a2-300x268.png" alt="" width="300" height="268" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">20)</span></span></strong><span style="font-family: Helvetica;"> In questa maniera, le quattro aree che andremo a colorare e ad evidenziare premendo i tasti freccia saranno sempre a disposizione senza alcun bisogno di dover essere definite con più o meno complicate assegnazioni di NSRect eccetera. Basterà definirle una volta per tutte all&#8217;avvio del programma, nella funzione &#8211; (id)initWithFrame:(NSRect )frame, e saranno sempre con noi durante tutto l&#8217;utilizzo dell&#8217;applicazione. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">MI RACCOMANDO!! Ricordatevi di trattenere queste variabili, una volta dichiarate! Se omettere il comando [retain] dopo averle dichiarate in: (id)initWithFrame:(NSRect)frame, non ne avrete alcun beneficio: il programma andrà in crash!! Quindi ricordatevi di ritenete le variabili che dichiarate all&#8217;init, mi raccomando.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a3.png"><img class="aligncenter size-medium wp-image-601" title="immagine-a3" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a3-283x300.png" alt="" width="283" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">21)</span></span></strong><span style="font-family: Helvetica;"> In questo modo, tutto il codice sarà più pulito e leggibile. Un programmatore esperto sarebbe partito direttamente da questa considerazione e non avrebbe sperimentato altre soluzioni: per lui sarebbe stato ovvio considerare le diverse parti colorate dell&#8217;interfaccia come entità separate. Anzi, probabilmente le avrebbe instanziate come NSSubViews, ma qui le cose si complicano, per cui non ci avventureremo oltre, per il momento!&#8230;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a4.png"><img class="aligncenter size-medium wp-image-602" title="immagine-a4" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a4-283x300.png" alt="" width="283" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">22)</span></span></strong><span style="font-family: Helvetica;"> In questo modo, il codice è davvero molto più pulito e leggibile. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a5.png"><img class="aligncenter size-medium wp-image-603" title="immagine-a5" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a5-279x300.png" alt="" width="279" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">23)</span></span></strong><span style="font-family: Helvetica;"> Ed ecco il risultato finale:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a6.png"><img class="aligncenter size-medium wp-image-604" title="immagine-a6" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-a6-191x300.png" alt="" width="191" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-size: 19pt; font-family: Helvetica;">7. Conclusione</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-size: small;"><strong><span style="font-family: Helvetica-Bold;"><span style="font-family: Times New Roman;">24)</span></span></strong><span style="font-family: Helvetica;"> Che dire? È stata una breve ma intensa passeggiata sui sentieri delle funzionalità di Cocoa! Spero che questo piccolo tutorial vi abbia fatto imparare qualcosa che ancora non sapevate, e scusate se per caso mi sono dilungato o sono stato mortalmente noioso. L&#8217;importante è una funzione che non conoscevate, un indizio, anche una sola parola vi sia stata utile. Certo, si potrebbe completare il tutorial con l&#8217;aggiunta di diversi suoni in corrispondenza dei diversi pulsanti premuti, oppure creare un meccanismo in grado di fare lampeggiare dei riquadri a caso e di interrogarvi per vedere se riuscite a ripeterli nell&#8217;ordine giusto, proprio come nel gioco! </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Non sarebbe complicato, basterebbe un file con qualche istruzione, un NSTimer e magari un contatore che mostri sul display i diversi punteggi realizzati, ma il tempo è poco e non so se possa interessarvi più di tanto. Magari può essere lo spunto per una seconda parte del tutorial, chissà! L&#8217;importante è che vi siate divertiti a giocare con me, con Cocoa e con il vostro Mac. A presto!</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Alessandro</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;">
<pre class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;">iPhoneandgo - Stefano Lo Duca - <a href="mailto:loduca_ve@yahoo.it">loduca_ve@yahoo.it</a></pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.iphoneandgo.it/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2008/10/13/gestione-nsview-in-cocoa-per-progetto-cresciamo-insieme-n1-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestione NSView in Cocoa. Per: &#8220;progetto cresciamo insieme&#8221; [n.1] Parte 1</title>
		<link>http://www.iphoneandgo.it/2008/10/13/gestione-nsview-in-cocoa-per-progetto-cresciamo-insieme-n1-parte-1/</link>
		<comments>http://www.iphoneandgo.it/2008/10/13/gestione-nsview-in-cocoa-per-progetto-cresciamo-insieme-n1-parte-1/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 19:34:43 +0000</pubDate>
		<dc:creator>Stefano Lo Duca</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Professionist]]></category>
		<category><![CDATA[Tutorial Pratici]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Eventi]]></category>
		<category><![CDATA[Source code]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=551</guid>
		<description><![CDATA[Secondo articolo per il "concorso : cresciamo insieme" n.1
Scritto da Alessandro - prima parte


Salve a tutti,
prima di cominciare mi sembra doveroso presentarmi: mi chiamo Alessandro e programmo su Macintosh da diversi anni, soprattutto in Cocoa e Applescript. Appena sono venuto a conoscenza dell&#8217;iniziativa di Stefano sul suo interessantissimo sito www.iphoneandgo.it, ho deciso di scrivere questo [...]]]></description>
			<content:encoded><![CDATA[<pre class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><em>Secondo articolo per il "concorso : cresciamo insieme" n.1</em>
<address style="text-align: left;">Scritto da Alessandro - prima parte</address>
</pre>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Salve a tutti,</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">prima di cominciare mi sembra doveroso presentarmi: mi chiamo Alessandro e programmo su Macintosh da diversi anni, soprattutto in Cocoa e Applescript. Appena sono venuto a conoscenza dell&#8217;iniziativa di Stefano sul suo interessantissimo sito www.iphoneandgo.it, ho deciso di scrivere questo piccolo tutorial per esplorare alcune delle possibilità offerte dal framework di Cocoa, che Apple mette a disposizione gratuitamente per tutti coloro che vogliono cominciare o che già conoscono un linguaggio di programmazione e vogliono imparare a programmare in Objective-C.<span id="more-551"></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Al momento in cui scrivo non dispongo, purtroppo (sob!), di un computer con Mac OS X Leopard e del relativo pacchetto di sviluppo per iPhone, ma pare che martedì prossimo Apple presenterà i suoi nuovi portatili, allora state certi che nel giro di qualche settimana avrò sia l&#8217;uno che l&#8217;altro! </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">In alternativa, ho deciso di scrivere qualche riga per mostrare ai neofiti (so benissimo quanto si abbia bisogno di esempi, quando si comincia!) come utilizzare alcune semplici librerie di Cocoa che riguardano l&#8217;input da tastiera, il disegno tramite NSView e in generale l&#8217;organizzazione necessaria per ottenere un codice pulito e facile da maneggiare. Credetemi: la bravura di un programmatore non sta solamente nella conoscenza che ha del suo linguaggio di programmazione preferito, sta soprattutto nell&#8217;ordine (del codice e mentale) con cui riesce a organizzare il software. Ma bando alle ciance!</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-size: 19pt; font-family: Helvetica;">1. Cominciamo!</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Per cominciare, ho pensato a un vecchio gioco che mi ha sempre tanto divertito quanto annoiato: il vecchio Memo Colors. Sinceramente non so se si chiami davvero così: è quel gioco in cui un cerchio è diviso in quattro spicchi colorati che si illuminano e suonano in una certa sequenza, di solito sempre più lunga e difficile, che voi dovete ripetere senza errori. Divertente, ma un po&#8217; noioso per me: non ricordo né un nome né un viso, ma una sequenza di suoni e colori mi basta vederla una volta e ripeterla è un gioco da ragazzi. Va be&#8217;, tagliamo!</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">1)</span> Iniziamo con il creare il nostro progetto: per questo tutorial, andrà bene una semplice Cocoa Application. Dal menu File -&gt; New Project e scegliete Cocoa Application. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> <a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-1.png"><img class="aligncenter size-medium wp-image-558" title="immagine-1" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-1-273x300.png" alt="" width="273" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">2)</span> Create il progetto e chiamatelo, per esempio, MemoColors. Il nome non è importante, ma è buona norma usare sempre le iniziali maiuscole, anche quando il nome è formato di più parole attaccate. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-2.png"><img class="aligncenter size-medium wp-image-559" title="immagine-2" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-2-273x300.png" alt="" width="273" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">3)</span> Dopo aver creato il progetto, dovreste vedere una finestra simile a questa:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-3.png"><img class="aligncenter size-medium wp-image-560" title="immagine-3" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-3-300x209.png" alt="" width="300" height="209" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">4)</span> Di default, XCode crea tutto quello di cui abbiamo bisogno per una normale applicazione: headers, collegamento alle principali librerie, interfaccia grafica. MemoColors è in rosso perché non è ancora stato compilato e quindi creato: questo è compito nostro! Se volete, potete già compilare il programma (Control+R) e vedere cosa succede. Il risultato non sarà dei più eccitanti, ma se non si verificano errori significa che tutto è a posto e possiamo cominciare ad aggiungere il nostro codice. Allora cominciamo!</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-size: 19pt; font-family: Helvetica;">2. NSView</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">5)</span> Dato che il nostro programma dovrà disegnare, anche se in forma grossolana, le quattro aree colorate che ricordano il gioco, dobbiamo aggiungere al progetto un nuovo file, che si occuperà esclusivamente del disegno. Andiamo su File -&gt; New File&#8230; e scegliamo Objective-C NSView subclass.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-4.png"><img class="aligncenter size-medium wp-image-564" title="immagine-4" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-4-273x300.png" alt="" width="273" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">6) </span>Ho chiamato questo file AreaDiGioco, ma potete dargli un nome qualunque. L&#8217;importante è che per voi sia chiaro che questo file (e il suo nome dovrebbe suggerirlo) si occuperà di disegnare e aggiornare quanto visivamente apparirà lanciando il programma. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-5.png"><img class="aligncenter size-medium wp-image-565" title="immagine-5" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-5-273x300.png" alt="" width="273" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">7)</span> Una volta creato, questo file apparirà così:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-6.png"><img class="aligncenter size-medium wp-image-566" title="immagine-6" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-6-300x268.png" alt="" width="300" height="268" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-size: 19pt; font-family: Helvetica;">3. Preliminari</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;"> <img src='http://www.iphoneandgo.it/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </span> Come abbiamo detto, questo file si occuperà di disegnare ciò che vedremo una volta lanciata l&#8217;applicazione. Per poter utilizzare questo file, però, dobbiamo prima integrarlo con Interface Builder. Per fare questo apriamo Interface Builder, prendiamo il file AreaDiGioco.h dall&#8217;elenco dei file di XCode, e trasciniamolo sulla finestra MainMenu.nib. Il file a questo punto è stato accettato dall&#8217;interfaccia ed è disponibile per ogni successiva manipolazione:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-9.png"><img class="aligncenter size-medium wp-image-573" title="immagine-9" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-9-300x202.png" alt="" width="300" height="202" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">9)</span> Perfetto! Quello che vogliamo ora, è che il programma utilizzi, una volta lanciato, una NSView, o meglio la &#8220;nostra&#8221; NSView, per mostrare ciò che succede sullo schermo. Per fare questo, bisogna per prima cosa aggiungere alla finestra principale una vista generica, e poi specificare che si tratta della &#8220;nostra&#8221; vista, ossia che il comportamento della vista verrà gestito dal file AreaDiGioco che abbiamo creato in XCode:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-12.png"><img class="aligncenter size-medium wp-image-574" title="immagine-12" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-12-191x300.png" alt="" width="191" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">10)</span> Adattate la finestra e la CustomView in modo che combacino (ho scelto le dimensioni 320&#215;480, come lo schermo del Melafonino) e assegnate alla CustomView (che non è altro che una vista generica) la tipologia corretta, ossia la nostra AreaDiGioco:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-13.png"><img class="aligncenter size-medium wp-image-575" title="immagine-13" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-13-221x300.png" alt="" width="221" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">11)</span> A questo punto torniamo in XCode, e andiamo a modificare il codice in modo che l&#8217;intera area visualizzata venga colorata di grigio. Non è molto allegro, ma almeno saremo sicuri che tutto sta funzionando nella maniera corretta:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-7.png"><img class="aligncenter size-medium wp-image-576" title="immagine-7" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-7-300x268.png" alt="" width="300" height="268" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">12)</span> A questo punto compiliamo il programma. Dovrebbe apparire una finestra completamente grigia, come questa: </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-pagination: none; tab-stops: 28.0pt 56.0pt 84.0pt 112.0pt 140.0pt 168.0pt 196.0pt 224.0pt 252.0pt 280.0pt 308.0pt 336.0pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-16a.png"><img class="aligncenter size-medium wp-image-577" title="immagine-16a" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-16a-191x300.png" alt="" width="191" height="300" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-size: 19pt; font-family: Helvetica;">4. Aggiungiamo i colori</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">13)</span> Bene, siamo sulla buona strada! Adesso, andiamo a creare la funzione che mostrerà le quattro aree con i quattro diversi colori scelti. La funzione è molto semplice: prima crea un rettangolo (NSRect), poi un&#8217;area basata su quel rettangolo (NSBezierPath), infine imposta un colore e lo applica all&#8217;area. Molto semplice. Il nome che ho usato per la funzione è: mostraAreeColorate, o meglio &#8211; (void)mostraAreeColorate. La funzione non restituisce alcun valore (void, infatti) perché non ci interessa avere un riscontro, l&#8217;importante è che faccia quello che deve. Cominciamo con un colore alla volta: come prima cosa, proviamo a colorare di verde il riquadro in basso a sinistra. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Dato che l&#8217;altezza e la larghezza della finestra della nostra applicazione non cambieranno, è conveniente definirli come costanti. Alla riga 11 del codice di AreaDiGioco.m vengono infatti definite le costanti ALTEZZA e LARGHEZZA, che ci serviranno per tutto il tutorial.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">Una volta definite altezza e larghezza, creiamo il rettangolo che useremo come base per definire un&#8217;area, scegliamo il colore verde [NSColor greenColor] e lo usiamo per riempire l&#8217;area appena definita. Facile, no? <img src='http://www.iphoneandgo.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;">PS: Se non avete definito la funzione &#8211; (void)mostraAreeColorate anche nell&#8217;header del file, ossia: AreaDiGioco.h, il compilatore vi segnalerà un warning (riga 35). Non è importante, ma è meglio evitare queste piccole imprecisioni quando si andrà in fase di release vera e propria.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-14.png"><img class="aligncenter size-medium wp-image-578" title="immagine-14" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-14-300x268.png" alt="" width="300" height="268" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-size: small;"><span><span style="font-family: Times New Roman;">14)</span> Una volta definito il primo riquadro colorato, procediamo nello stesso modo per gli altri tre. Il codice risultante sarà questo:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-16.png"><img class="aligncenter size-medium wp-image-582" title="immagine-16" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-16-300x268.png" alt="" width="300" height="268" /></a></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-size: small;"><span><span style="font-family: Times New Roman;">15)</span> L&#8217;utilizzo dei commenti dovrebbe essere limitato in fase di release, ma per testare il codice non solo è molto utile: è decisamente indispensabile! A questo punto, lanciate la vostra applicazione. Il risultato finale dovrebbe essere molto simile a questo. Certo, non sarà la Gioconda, ma con appena 16 righe di codice è un ottimo risultato! </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: justify; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;"><span style="font-family: Helvetica;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center; mso-pagination: none; tab-stops: 28.3pt 56.65pt 85.0pt 113.35pt 141.7pt 170.05pt 198.4pt 226.75pt 255.1pt 283.45pt 311.8pt 340.15pt; mso-layout-grid-align: none;" align="center"><span style="font-family: Helvetica;"><span style="font-size: small;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-17.png"><img class="aligncenter size-medium wp-image-583" title="immagine-17" src="http://www.iphoneandgo.it/wp-content/uploads/2008/10/immagine-17-191x300.png" alt="" width="191" height="300" /></a></span></span></p>
<p>Parte 2a</p>
<pre>iPhoneandGo - Stefano Lo Duca - <a href="mailto:loduca_ve@yahoo.it">loduca_ve@yahoo.it</a></pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.iphoneandgo.it/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2008/10/13/gestione-nsview-in-cocoa-per-progetto-cresciamo-insieme-n1-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teoria: Il sistema operativo iPhone OS e la sua tecnologia: schema livelli iPhone OS: seconda parte</title>
		<link>http://www.iphoneandgo.it/2008/09/07/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-schema-livelli-iphone-os-seconda-parte-n6/</link>
		<comments>http://www.iphoneandgo.it/2008/09/07/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-schema-livelli-iphone-os-seconda-parte-n6/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 20:09:58 +0000</pubDate>
		<dc:creator>stefanoloduca</dc:creator>
				<category><![CDATA[Advanced]]></category>
		<category><![CDATA[Teoria di base]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Os]]></category>
		<category><![CDATA[Core Services]]></category>

		<guid isPermaLink="false">http://iphoneandgo.wordpress.com/?p=598</guid>
		<description><![CDATA[In questo nuovo articolo vorrei completare (almeno per il momento) il discorso sulla struttura tecnica che sta dietro il sistema operativo del nostro iPhone. Ho realizzato un piccolo schema per rappresentare i diversi livelli, le diverse funzioni, e le diverse raccolte di librerie/funzioni che ne fanno parte.

Partiamo dal livello più alto quello più importante e [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">In questo nuovo articolo vorrei completare (almeno per il momento) il discorso sulla struttura tecnica che sta dietro il sistema operativo del nostro iPhone. Ho realizzato un piccolo schema per rappresentare i diversi livelli, le diverse funzioni, e le diverse raccolte di librerie/funzioni che ne fanno parte.<span id="more-279"></span></p>
<p style="text-align:justify;">
<p style="text-align:justify;">Partiamo dal livello più alto quello più importante e pratico :</p>
<p style="text-align:justify;"><strong>Cocoa Touch</strong></p>
<ul>
<li><em><strong>UIKit.framework</strong></em></li>
<li><em><strong>Foundation.framework</strong></em></li>
</ul>
<p><strong>Media</strong></p>
<ul>
<li>Grafica:
<ul>
<li><em><strong>OpenGLES.framework</strong></em></li>
<li><em><strong>EAGL.framework</strong></em></li>
<li><em><strong>QuartzCore.framework</strong></em></li>
<li><em><strong>Core-Graphics.framework</strong></em></li>
</ul>
</li>
<li>Core Audio
<ul>
<li><em><strong>CoreAudio.framework</strong></em></li>
<li><em><strong>AudioToolbox.framework</strong></em></li>
<li><em><strong>AudioUnit.framework</strong></em></li>
<li><strong>OpenAL -&gt; <em>Open Audio Library</em></strong></li>
</ul>
</li>
<li>Video
<ul>
<li><em><strong>MediaPlayer.framework</strong></em></li>
</ul>
</li>
</ul>
<p><strong>Core Services</strong></p>
<ul>
<li>Address book
<ul>
<li><strong><em>AddressBook.framework</em></strong></li>
<li><strong><em>AddressBookUI.framework</em></strong></li>
</ul>
</li>
<li>Core Foundation
<ul>
<li><em><strong>CoreFoundation.framework</strong></em></li>
</ul>
</li>
<li>Core Location
<ul>
<li><strong><em>CoreLocation.framework</em></strong></li>
</ul>
</li>
<li>CFNetwork
<ul>
<li><strong><em>CFNetwork.framework</em></strong></li>
</ul>
</li>
<li>Security
<ul>
<li><strong><em>Security.framework</em></strong></li>
</ul>
</li>
<li>SQLite
<ul>
<li><strong><em>SQLite Library</em></strong></li>
</ul>
</li>
<li>XML
<ul>
<li><strong><em>limXML2</em></strong></li>
<li><strong><em>libxslt</em></strong></li>
</ul>
</li>
</ul>
<p><strong>Core OS</strong></p>
<ul>
<li><strong><em>LibSystem library</em></strong></li>
</ul>
<p style="text-align:justify;">Questo schema riassume tutti gli strumenti che ci vengono messi a disposizione per creare le nostre applicazioni per iPhone. Vedremo di analizzarle una per una con prove pratiche e spiegazioni fin dai prossimi articoli.</p>
<p>iPhoneandGo &#8211; Stefano Lo Duca &#8211; loduca_ve@yahoo.it</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.iphoneandgo.it/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2008/09/07/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-schema-livelli-iphone-os-seconda-parte-n6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teoria: Il sistema operativo iPhone OS e la sua tecnologia: Core OS, Core Service, Media e Cocoa Touch: prima parte.</title>
		<link>http://www.iphoneandgo.it/2008/09/01/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-core-os-core-service-media-e-cocoa-touch-prima-parte-n5/</link>
		<comments>http://www.iphoneandgo.it/2008/09/01/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-core-os-core-service-media-e-cocoa-touch-prima-parte-n5/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 20:35:39 +0000</pubDate>
		<dc:creator>stefanoloduca</dc:creator>
				<category><![CDATA[Advanced]]></category>
		<category><![CDATA[Teoria di base]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core]]></category>
		<category><![CDATA[iphone os]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://iphoneandgo.wordpress.com/?p=488</guid>
		<description><![CDATA[Ricordo ancora quando ho letto per la prima volta questi termini : Cocoa, Core, Media&#8230; OS.. e continuavo a dirmi, ma cosa sto leggendo, cosa sono.. cosa significano queste parole &#8230; forse cacao .. insomma una miriade di termini, acronimi che vederli per la prima volta mettono facilmente sfiducia &#8230; ma allora cerchiamo di fare [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Ricordo ancora quando ho letto per la prima volta questi termini : Cocoa, Core, Media&#8230; OS.. e continuavo a dirmi, ma cosa sto leggendo, cosa sono.. cosa significano queste parole &#8230; forse cacao .. insomma una miriade di termini, acronimi che vederli per la prima volta mettono facilmente sfiducia &#8230; ma allora cerchiamo di fare un po&#8217; di chiarezza..<span id="more-237"></span></p>
<p style="text-align:justify;">Il sistema operativo <a title="didascalia iphone os" href="http://www.iphoneandgo.it/didascalie-e-spiegazioni/" target="_self">iPhone OS</a> e&#8217; il software (il cuore) che sta alla base del nostro iphone che gestisce praticamente tutto tra il nostro applicativo e cio&#8217; che l&#8217;iphone deve fare per noi come ad esempio mettere a disposizioni le risorse hardware.</p>
<p style="text-align:justify;">Per poter programmare scegliendo gli strumenti più giusti per sviluppare i nostri applicativi, dobbiamo immaginarci un sistema operativo suddiviso a 4 livelli.</p>
<div id="attachment_499" class="wp-caption aligncenter" style="width: 374px"><a href="http://www.iphoneandgo.it/wp-content/uploads/2008/09/iphoneos.png"><img class="size-full wp-image-499" src="http://www.iphoneandgo.it/wp-content/uploads/2008/09/iphoneos.png" alt="iPhone OS" width="364" height="348" /></a><p class="wp-caption-text">iPhone OS Technologies</p></div>
<p style="text-align:justify;"><strong>Core OS</strong> si trova nel livello più basso e rappresenta le funzioni più primitive, le operazioni più vicine al cuore del sistema (e solitamente quindi le più complesse). Core OS gestisce l&#8217;allocazione di Memoria, informazioni locali, sistema di input e output, il networking, l&#8217;accesso ai file di sistema, i drivers, i servizi DNS. Si può accedere alle sue funzioni tramite la libreria <em>LibSystem.</em></p>
<p style="text-align:justify;"><strong>Core Services </strong>rappresenta tutti i servizi fondamentali che le applicazioni necessitano di gestire, come Address Book (la gestione dei contatti), come il supporto e la gestione dei : tipi di dati (arrays, sets, ecc), delle date dell&#8217;ora  delle stringhe, delle preferenze di sistema, degli url, ecc. più avanti illustrero&#8217; con uno schema tutti i servizi. Inoltre gestisce i servizi di localizzazione: longitudine e latitudine, gestisce il CFNetwork.framework, Security.Framework, le libreria <a title="didascalia SQLite" href="http://www.iphoneandgo.it/didascalie-e-spiegazioni/" target="_self">SQLite</a> per la gestione di un <a title="didascalia database" href="http://www.iphoneandgo.it/didascalie-e-spiegazioni/" target="_self">DataBase</a> eil supporto al XML.</p>
<p style="text-align:justify;"><strong>Media </strong>tutto quello che rappresenta la grafica, media, audio, video viene gestito qui. Quelle che sono le migliori esperienze multimediali che l&#8217;iphone dispone sono gestite da questi <a title="didascalia framework" href="http://www.iphoneandgo.it/didascalie-e-spiegazioni/" target="_self">framework</a>.</p>
<p style="text-align:justify;"><strong>Cocoa Touch </strong>è il livello più importante del sistema iphone. Viene gestito da due framework UIKit e Foundation Frameworks. Questi frameworks gestiscono aspetti molto importanti come : la gestione delle applicazioni, della grafica e della gestione delle finestre, degli eventi, dell&#8217;interfaccia, degli oggetti che controllano il sistema, e il supporto per i contenuti testuali e web. Inoltre gestiscono l&#8217;accelerometro, la libreria fotografica, la fotocamera, e le informazioni sul device.</p>
<p style="text-align:justify;">Nel prossimo articolo cercherò con uno schema di riassumere le diverse funzionalità e framework esistenti nei vari livelli del nostro iphone OS.</p>
<p style="text-align:justify;"><a title="iphoneandgo" href="http://www.iphoneandgo.it" target="_self">iPhoneAndGo</a> &#8211; Stefano Lo Duca &#8211; loduca_ve@yahoo.it</p>
<p style="text-align:justify;">
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://www.iphoneandgo.it/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2008/09/01/teoria-il-sistema-operativo-iphone-os-e-la-sua-tecnologia-core-os-core-service-media-e-cocoa-touch-prima-parte-n5/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
