2012-09-27 25 views
5

Ho recentemente aggiornato il mio XCode alla versione 4.5 e ora sto avendo problemi quando tento di sviluppare applicazioni su iOS 5.0/5.1.Problemi con simulatore iOS 5.1 utilizzando XCode 4.5

Ho sviluppato un semplice gioco per iPad in cui l'utente deve abbinare le immagini con le parole corrispondenti. Tutti questi elementi sono memorizzati in UIImageView, se questo è rilevante. L'orientamento dell'interfaccia supportata è solo orizzontale.

Quando eseguo la mia applicazione utilizzando il simulatore di iPad 6.0, tutto funziona senza problemi. Ma quando provo ad eseguirlo usando 5.1, tutto va storto. Le immagini semplicemente non appaiono e la mia immagine di sfondo appare di lato e ripetuta. Anche la barra di stato appare erroneamente: l'orientamento del dispositivo è orizzontale, ma la barra laterale appare sul lato destro. Anche questo non accade quando utilizzo il simulatore 6.0.

Nei dettagli del progetto ho già modificato il Target di distribuzione iOS su 5.1, nonché sullo Storyboard. Utilizzando lo scopo di distribuzione di iOS 5.1, lo storyboard non mi consente di selezionare l'opzione "Usa l'Autolayout", quindi ho deselezionato questa opzione. Questo è causato da questa opzione?

Ho già provato a eseguire la mia applicazione su un dispositivo, ma il risultato è lo stesso. Da quando ho installato XCode 4.5 ho iniziato ad avere questo tipo di problemi, dal momento che ad esempio non posso nemmeno eseguire correttamente un modello "Master-detail Application" nel simulatore iOS 5.x, perché si blocca quando faccio clic sul pulsante "Aggiungi" .

Mi manca qualcosa per eseguire applicazioni 5.x create utilizzando l'SDK 6? Ho già cercato in molti forum ma non ho ancora trovato alcuna soluzione a questo tipo di problema. Sarò lieto di ricevere qualsiasi tipo di suggerimento, dal momento che ho già perso un sacco di tempo intorno a questo problema e sono a corto di opzioni.

[EDIT]: ho ricordato un dettaglio che può essere rilevante per questo problema: la mia vista nello storyboard è una visualizzazione personalizzata. Ho creato una classe che si estende da UIView in modo da poter sovrascrivere la funzione drawRect per tracciare linee tra i miei oggetti. Poi in Storyboard, nella View, ho appena selezionato la mia classe in Custom Class -> Class.

Ho notato che quando eseguo 5.1 Simulator la barra di stato inizialmente appare in alto e poi quando la finestra è caricata va a destra.

Se vuoi conoscere altri dettagli, per favore chiedimi.

Grazie mille.

risposta

2

Hai controllato lo storyboard per assicurarti di aver spento l'autolayout? L'autolayout funziona solo con iOS6. Questa opzione può essere trovata guardando il tuo controller di visualizzazione in File Inspector Area sotto Interface Builder Document. È una casella di controllo

+0

Sì, come ho affermato nella mia domanda iniziale, ho spento Autolayout. Se questa opzione è selezionata, XCode non mi consente nemmeno di eseguire il progetto usando il simulatore 5.1. – fabioalmeida

+0

Ho notato che per mantenere l'orientamento orizzontale in 5.1 Simulator ho bisogno di sovrascrivere il metodo shouldAutorotateToInterfaceOrientation in me View Controller, ma le mie immagini che ho definito in Storyboard continuano a non apparire. Devo cambiare qualcos'altro in modo che funzioni correttamente in 5.1 Simulator come in 6.0? – fabioalmeida

0

Sembra che tu non sia l'unica persona con problemi di Simulator 5.1 in XCode 4.5. Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument Anche le mie app si sono rotte. 5.0 sim sembra funzionare abbastanza bene.

+0

Il mio problema si verifica sia in 5.0 che in 5.1. Ad esempio, non posso nemmeno eseguire correttamente un modello "Applicazione dettagli master" in qualsiasi simulatore iOS 5.x, ma funziona correttamente in 6.0. – fabioalmeida

4

l'inglese non è la mia nativa quindi ti prego di perdonare la mia grammatica ...

quanto riguarda il tuo master-detail "Aggiungi" questione pulsante, questo è ciò che ha funzionato per me.

Da quello che posso dire, l'applicazione si blocca a causa di:

[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 

Guida rapida dice:

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath declaration is only available in iOS (6.0 and later). 

Così ho provato a cambiare il codice in MasterViewController.m:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

per il codice che Xcode utilizzato nelle versioni precedenti:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

    } 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

Spero che questo aiuti.

Problemi correlati