2012-02-29 7 views
8

La mia applicazione funzionava bene fino a oggi ha iniziato a bloccarsi a: [self.window makeKeyAndVisible]; nel delegato dell'app.Blocco in [self.window makeKeyAndVisible];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    self.viewController = [[ViewControllerWordHelper alloc] initWithNibName:@"ViewControllerWordHelper_iPhone1" bundle:nil]; 
} else { 
    self.viewController = [[ViewControllerWordHelper alloc] initWithNibName:@"ViewControllerWordHelper_iPhone" bundle:nil]; 
} 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
return YES; 
} 

Se il debug e vi entri a [self.window makeKeyAndVisible], l'istruzione successiva prima di schiantarsi è "@synthesize finestra = _window;" nello stesso app delegato.

Tutte le versioni precedenti che funzionavano si comportavano allo stesso modo.

Ho riavviato il mio computer e lo stesso sta accadendo. Sto usando XCode 4.2. C'è qualcosa nell'installazione di xcode che potrei aver cambiato accidentalmente?

Grazie per qualsiasi aiuto.

Quello che segue è l'intera finestra di debug:

`GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Mon Aug 15 16:03:10 UTC 2011) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all 
Attaching to process 440. 
Pending breakpoint 3 - ""ViewControllerWordHelper.m":136" resolved 
Pending breakpoint 4 - ""AppDelegate.m":41" resolved 
Pending breakpoint 5 - ""ViewControllerWordHelper.m":27" resolved 
Pending breakpoint 6 - ""ViewControllerWordHelper.m":166" resolved 
Current language: auto; currently objective-c 
(gdb) ` 
+0

obiettivi pulizia prova con Comando shift-k –

+0

se è possibile, pubblicare l'errore. –

+0

Questo è tutto nella mia finestra di debug: – saman01

risposta

2

Questo incidente è accaduto a me quando ho tolto alcune proprietà IBOutlet che erano legati al mio XIB.

Se si ottiene un errore come questo:

2012-09-20 09:45:07.920 AppName[78792:c07] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ViewController 0xa2b3000> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the keyNonexistentPropertyNameHere.'

Trova che fa riferimento a presa della XIB e rimuoverlo o aggiungere nuovamente che la proprietà per il vostro controller della vista.

0

Questo è principalmente causa per non aver creato il XIB per ViewControllerWordHelper_iPhone1/ViewControllerWordHelper_iPhone.

altrimenti si può modificare il codice in questo modo

self.viewController = [[ViewControllerWordHelper alloc] initWithNibName:nil bundle:nil]; 
} else { 
    self.viewController = [[ViewControllerWordHelper alloc] initWithNibName:nil bundle:nil]; 
} 
4

Se hai creato il progetto per iOS 6 e poi è stata modificata la destinazione di distribuzione a 5.1, è l'Autolayout dalle .xibs.

Aprire ciascun file .xib, fare clic sul pulsante "Mostra utilità" (terzo dal gruppo di visualizzazione), quindi selezionare "Mostra impostazioni file" (prima scheda), spuntare "Usa download automatico" e modificare Distribuzione su 5.1. (vedi screenshot allegato).

Tick off Use Autolayout

+0

Sì ... questa potrebbe essere la soluzione alla tua domanda @ saman01. –

21

Un altro grande causa di questo è se si è collegato un oggetto a qualcosa in un .xib e poi eliminato l'oggetto, perché avete deciso di non hai bisogno, ma ha dimenticato di distruggere la connessione.

+0

grazie davvero hai risparmiato tempo –

+0

Buona chiamata, sono stato in grado di cercare nel mio file project.pbxproj per essere sicuro di rimuovere tutti i riferimenti (nel mio caso si trattava di un vecchio target di test che non veniva completamente cancellato). – teradyl

+0

Sei un dio tra gli uomini. – sosale151

0

Forse qualcun altro può beneficiare di questo. Ho ottenuto questo crash a makeKeyAndVisible e ho provato tutto ciò che suggerivo qui e in qualsiasi altro posto che potessi trovare. Nessun successo. Ancora si blocca.

Ho commentato la linea che makeKeyAndVisible è attiva, ma il ViewController non carica mai.

Giusto per vedere cosa sarebbe successo, ho diviso in due makeKeyAndVisible:

[self.window makeKeyWindow]; 
self.window.hidden = NO; 

Si blocca alla seconda linea, in modo a quanto pare iOS non piace la chiave nascosta.

Dalla console di debug:

0 CoreFoundation      0x0173b5e4 __exceptionPreprocess + 180 
1 libobjc.A.dylib      0x014be8b6 objc_exception_throw + 44 
2 CoreFoundation      0x017cb6a1 -[NSException raise] + 17 
3 Foundation       0x0117f9ee -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282 
4 Foundation       0x010ebcfb _NSSetUsingKeyValueSetter + 88 
5 Foundation       0x010eb253 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267 
6 Foundation       0x0114d70a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412 

La mia esperienza è in programmazione in linguaggio assembly e Objective-C è abbastanza misterioso per me, quindi non so dove andare da qui.


Maggiori informazioni: mi sono trasferito questa istruzione fino a poco prima del ritorno alla fine del didFinishLaunching applicazione ... e ora si blocca su questo:

self.window.rootViewController = self.viewController; 
+0

Sto avendo esattamente lo stesso problema facendo esattamente gli stessi test che hai fatto. Hai risolto il problema? –