Archivio

Archivio per novembre 2009

Sincronizzazione iPhone – iPhoto, errore -50

25 novembre 2009 stefano 5 commenti

Ragazzi dovete sapere che ieri ho partecipato ad un convegno molto interessante sulla sicurezza informatica e alla fine dei lavori è stato estratto fra tutti i partecipanti un Apple iPhone 3GS da 16 GB e indovinate un pò! The winner is Stefano Perinetti. Sta mattina tutto ganzo accendo il mac aggiorno iPhoto e poi procedo alla sincronizzazione del mio iPhone 3G per poi passare a quello nuovo e subito incorro in questo problema:

Errore di sincronizzazione iTunes -50

Errore di sincronizzazione iTunes -50

Impossibile sincronizzare: errore -50!!!!

Um iniziamo bene penso fra me e me! Poichè l’unica cosa che è cambiata fra ieri sera e questa mattina è soltanto iPhoto do immediatamente la colpa dell’accaduto a lui e inizio a cercare la possibile causa. Come al solito, Google, mi viene incontro e dopo un paio di ricerche mirate finalmente trovo una possibile causa: il file xml AlbumData.xml all’interno della libreria iPhoto contiene probabilmente un errore! Per controllare il file si suggerisce di aprirlo con Safari che segnalerà immediatamente eventuali errori e  la riga dell’immenso file dove questi si presentano.

Per aprire la libreria di iPhoto al fine di raggiungere detto file occorre cliccare con il pulsante destro on in alternativa ctrl click e selezionare dal menu contestuale “mostra contenuto pacchetto”.

Aprendo il file con Safari mi viene mostrato immediatamente un errore alla riga 2323. Bene dico almeno l’errore c’è, ok apro il file con smultron e mi dirigo alla linea 2323 e che trovo? Un valore di tipo stringa con un percorso ad una canzone nella libreria iTunes che contiene al suo interno un “&”. Ok vediamo di cosa si tratta e analizzando le righe successive capisco che l’insieme XML  che sto analizzando descrive una presentazione che ha come sottofondo musicale quella canzone, probabilmente il problema è la & nella stringa relativa al percorso della canzone.

Ok chiudo tutto senza salvare apro iPhoto cambio sfondo musicale alla presentazione incriminata, utilizzando un’altra canzone e indovinate un pò?

Tutto torna alla normalità! Errore sparito!

Se quindi qualcuno ha un errore di questo tipo può provare ad eseguire questo tipo di controllo.

Ciao

Alla stazione!!!

18 novembre 2009 stefano Nessun commento

Paonazzi con le mani arrossate da freddo e le ultime falangi delle dita di un giallo pipì stanno, innanzi la porta del treno, intenti a fumare avidamente e pronti allo scatto felino, quando la porta si chiude e in pochi istanti devono saltare sul treno gettando la cicca a terra!

Cosa da fastidio?

Semplice, la puzza che emanano quando ti si siedono accanto!!!

(Piccole riflessione di un pendolare alle 7 del mattino)

Categorie:Varie Tag: ,

(Studiando cocoa) Currency converter Parte 4°

2 novembre 2009 stefano Nessun commento

Nelle precedenti parti abbiamo creato l’applicazione Currency Converter, in questa lezione cercheremo di completare ed apportare alcune migliorie.

Mostriamo bene il risultato del calcolo

Avrete sicuramente notato che il risultato della conversione è un numero float con tanti decimali per lo più ininfluenti. Voglio mostrare questa cifra con soli due decimali. Non sapendo come fare esattamente ho dato una spulciata alle classi NSNumber e NSNumberFormatter ed ho trovato una soluzione che funziona, forse non sarà elegante ma funziona. In questo momento non cerco soluzioni eleganti ma semplicemente risposte alle mie curiosità.

Dunque ho modificato ConverterControlle.m  per utilizzare queste due classi così:

- (IBAction)convert:(id)sender
{
//dichiaro una variabile per contenere un oggetto NSString
//che conterrà il valore della conversione sottoforma di una
//stringa opportunamente formattata.
NSString *amount;
//Creo un'istanza di converter
converter = [[Converter alloc]init];
//chiamo il metodo setSourceCurrencyAmount passandogli il valore del TextFiled
//euroField
[converter setSourceCurrencyAmount:[euroField floatValue]];
//chiamo il metodo setRate passandogli il valore di rateField
[converter setRate:[rateField floatValue]];
//creo un oggetto NSNumberFormatter
NSNumberFormatter *myNumberFormatter = [[NSNumberFormatter alloc] init];
//setto i parametri per la formattazione
[myNumberFormatter setMaximumFractionDigits:2];
[myNumberFormatter setMinimumFractionDigits:2];
//creo la stringa formattata, è necessario passare un NSNumber che creo a partire dal float che
//mi torna convertCurrency
amount = [myNumberFormatter stringFromNumber: [NSNumber numberWithFloat:[converter convertCurrency]]];
//imposto il valore del campo amountField con il valore della variabile di metodo
[amountField setStringValue:amount];
//torno al campo di testo degli euro da convertire
[euroField selectText:self];
}

Come possiamo notare ho tolto la dichiarazione della variabile float e l’ho sostituita con una dichiarazione per una variabile adatta a contenere un oggetto NSString. Ho poi creato ed istanziato un oggetto NSNumberFormatter che si occupera della formattazione e della conversione in una stringa.

NSNumberFormatter *myNumberFormatter = [[NSNumberFormatter alloc] init];

Setto poi il comportamento di NSNumberFormatter con i decimali.

[myNumberFormatter setMaximumFractionDigits:2];
[myNumberFormatter setMinimumFractionDigits:2];

Poi chiamo il metodo stringFrom Number che pretende come parametro un NSNumber e torna come risultato una NSString. Memorizzo l’oggetto NSString nella variabile amount e utilizzo il metodo di classe numberWithFloat per creare un oggetto NSNumber partendo da un numero float, che è quello tornato dal metodo convertCurrency.

mount = [myNumberFormatter stringFromNumber: [NSNumber numberWithFloat:[converter convertCurrency]]];

Infine assegno la variabile amount al campo di testo con il metodo setStringValue.

[amountField setStringValue:amount];

In questo modo l’importo convertito si vede sempre con 2 cifre decimali. NSNumberFormatter comunque fa molte altre cose è opportuno dargli uno sguardo, poichè contiene molti metodi per le valute e l’internazionalizzazione dei numeri.

Ottimizziamo il menu

Come avete notato il menu della nostra applicazione contiene molte più cose di quante ne servano effettivamente, questo perchè Xcode mette le cose più comuni dentro.

Togliete pure il menu relativo ai font, quello window tanto currency converter a una sola finestra, nel menu file togliete tutto e lasciate solo close, nel menu edit lasciate soltanto quelli relativi a la copia incolla, annulla e redo. Togliete pure l’istanza della classe che controlla il menu font nella finestra MainMenu.xib

Un’altra piccola cosa è quella di impostare l’allineamento a destra dei campi, a me piacciono i più i numeri allineati a destra stile calcolatrice.

Salviamo e chiudiamo IB

Localizziamo in italiano

Per localizzare in italiano la nostra applicazione occorre sostanzialmente tradurre soltanto l’interfaccia. Per far questo selezionate MainMenu.xib nella finestra di Xcode e premete Cmd + i nel tab general premete su Add localization e scrivete Italian come nome della localizzazione, premete add.

Ora fate doppio clic su MainMenu.xib (Italian) e in IB traducete tutto compreso il menu. Non tentate di tradurre il menu col nome dell’Applicazione non funzionerà quindi non traducetelo.

Salvate, date un clean e ricompilate la vostra applicazione. Adesso apparirà in italiano. Un consiglio guradate i nomi in italiano che usa Apple per tradurre i comandi comuni, come file->archivio, edit->modifica etc.

Bene salvate tutto e chiudete IB. In Xcode date un bel clean e ricompilate tutto. Ecco a voi Currency Converter in italiano.

L’icona

Icon Composer

Icon Composer

Per impostare l’icona dell’applicazione occorre prima disegnarne una e poi con il tool Icon Composer creare il file .icns. Potete disegnare la vostra icona con qualsiasi programma di grafica vettoriale come Illustrator o Fireworks, salvarla in formato jpeg o meglio png e importarla in Icon Composer. Icon Composer si trova dentro la cartella Developer > Applications > Utilities, non vi spiego come si fa è talmente banale che vi divertite da soli. Tenete presente che per Leopard occorre disegnare l’icona di ben 512×512 pixel, poichè le icone grandi vengono mostrate nella visuale coverflow del finder.

Una volta che avete creato l’icona salvate il file con il nome APPL.icns all’interno della cartella del progetto. Per concludere in Xcode editate il file:

  • Currency_Converter-info.plist

che trovate nella cartellina Resources e nella proprietà icon file inserite APPL.icns. Clean e compilate di nuovo, adesso la vostra applicazione ha anche un’icona.

Bene e con questo si conclude il progetto Currency Converter, certo manca il file dell’aiuto, ho dato una sbirciata e ho capito che non è difficile ma piuttosto laborioso creare un help Book pertanto ci rinuncio per questo tutorial e ci dedicherò tempo per la mia prima vera e propria applicazione cocoa.

Ciao

Categorie:Cocoa Tag: , ,