Sto vedendo uno strano comportamento con il debugger Xcode 6. Ho creato un Singleton condiviso esempio utilizzando il seguente codice:Xcode 6 strano (nullo) display nel debugger
+ (instancetype)shared
{
static DataBaseManager *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[DataBaseManager alloc] init];
});
return sharedInstance;
}
Subito dopo l'oggetto viene inizializzato chiamando il metodo come questo:
DataBaseManager *manager = [DataBaseManager shared];
NSLog(@"");
ho messo un punto di interruzione sul "NSLog" , e sto vedendo il seguente stato debugger:
mi sono assicurato sto lanciando su di debug modalità, e che le impostazioni di costruzione vanno bene, seguendo la domanda qui: Xcode debugger doesn't print objects and shows nil, when they aren't
Qualche idea sul perché questo sta accadendo? Questa è la prima volta che ho mai visto questo tipo di comportamento strano. Qualsiasi aiuto sarebbe molto apprezzato.
**UPDATE**
A bug was reported to apple bug report system.
The bug status is: Duplicate of 17164538 (Closed)
so it is probably a known bug in Xcode.
La mia esperienza con la visualizzazione del debugger Xcode è che è piuttosto fragile. La cosa su cui puoi fare affidamento è la shell LLDB sulla destra. Ad esempio, 'po manager',' po manager -> _ databasePath', ... Se si riscontrano problemi coerenti, si consiglia di presentare una segnalazione di bug con Apple, comunque. – DarkDust
@DarkDust 'po manager' stampa l'indirizzo di memoria di 'manager'. tutto funziona, ma questo problema è frustrante. Grazie. – Raz
Le informazioni sullo schermo delle variabili Xcode sono spesso inutili. Ogni volta che si sospetta che usi 'p' e' po'. Risparmierai un sacco di tempo (Inoltre, ovviamente, 'NSLog (@" ");' non ti mostrerà nulla e se questo doveva essere il * solo * riferimento a 'manager', allora è probabile che sia stato gettato dall'ottimizzatore.) –