lavorando su un progetto mac os (che significa non iPhone) che richiede 10.6 ed è a 64 bit, mi consente di utilizzare le proprietà per generare sia metodi di accesso che variabili di istanza nel file di intestazione. ma, durante il debug, non vedo come guardare i valori delle proprietà dell'oggetto dopo che sono stati popolati. c'è qualche impostazione di build che deve essere attivata?xcode 3.2.2 e objective-c 2.0 e debug: dove sono i valori della proprietà/istanza della variabile dell'oggetto nel debug?
se sto dichiarando le variabili di istanza di un oggetto (tra {} nell'intestazione), quindi posso vedere quei valori (quando vengono utilizzati) durante il debug nella finestra di debug o usando il cursore-passaggio del mouse sopra il trucco di linea evidenziato nell'editor durante un'interruzione, o facendo cli in gdb come 'p * object' per esempio.
vecchia maniera:
@class Suit;
@interface Card : NSObject
{
NSNumber *playOrder;
Suit *suit;
NSNumber *displayNumber;
NSNumber *orderIndex;
}
@property(nonatomic, retain) Suit *suit;
@property(nonatomic, retain) NSNumber *displayNumber;
@property(nonatomic, retain) NSNumber *orderIndex;
modo nuovo:
@class Suit;
@interface Card : NSObject
@property(nonatomic, retain) Suit *suit;
@property(nonatomic, retain) NSNumber *displayNumber;
@property(nonatomic, retain) NSNumber *orderIndex;
@property(nonatomic, retain) NSNumber *playOrder;
in questo nuovo conio 10,6 idea 64bit richiesto (che sembra più semplice per me) nessuno di questi metodi di debug visualizzare i valori dell'oggetto. Immagino che devo avere qualcosa spento, perché questa nuova idea, non sembra migliore.
risultati gdb per vecchia maniera:
(gdb) po newCard
New Card : 0 of Suit : Hearts (NSCalibratedRGBColorSpace 1 0 0 1). with orderIndex of: 1
(gdb) p *newCard
$1 = {
<NSObject> = {
isa = 0x100002188
},
members of Card:
playOrder = 0x0,
suit = 0x200053a20,
displayNumber = 0x20001bac0,
orderIndex = 0x200012de0
}
(gdb)
risultati gdb per nuovo modo:
(gdb) po newCard
New Card : 0 of Suit : Hearts (NSCalibratedRGBColorSpace 1 0 0 1). with orderIndex of: 1
(gdb) p *newCard
$3 = {
<NSObject> = {
isa = 0x100002188
}, <No data fields>}
(gdb)
così guardando la documentazione per Objective-C 2.0:
descrive a cosa mi riferisco (sintetizzando le variabili di istanza in "moderno" r untime), ma ciò che non viene detto da nessuna parte, è che se lo fai, i valori non saranno disponibili durante il debug.
ho trovato una pagina SO con informazioni pertinenti, ma non sono concentrato su questo effetto: Using instance variables with Modern Runtime
cosa mi sono perso?
È possibile che sia stata attivata la raccolta garbace? Prova a spegnerlo e controlla se il debugger viene prelevato sui campi. –
sì la garbage collection è attiva in entrambi i test di esempio. – lulu