2013-05-31 11 views
7

Ho una domanda sulla funzione "Mostra riepiloghi" in Xcode di cui sta parlando this guys.Come mostrare la descrizione dell'obiettivo c in xcode

Attualmente, implemento description e debugDescription nelle mie classi Objective-C a che posso basta digitare po myObject per ottenere una rapida visualizzazione dei contenuti e questo mi fa risparmiare tempo.

Tuttavia, vorrei sapere se c'è un modo per ottenere questo per mostrare in questa cosa "mostra riassunti". Un po 'come quando hai una NSString, ti mostra semplicemente la stringa nel pannello Contenuto senza ulteriori sforzi da parte tua.

E lo faccio anche per i miei oggetti? Questo mi avrebbe risparmiato così tanto tempo :)

Grazie gente.

Modifica Grazie al commento di Martin R sono riuscito ad ottenere ciò che volevo :) Link

+1

Hai bisogno di alcuni script Python. Questo sito mostra come funziona: http://stavash.wordpress.com/2013/01/06/advanced-issues-creating-custom-lldb-object-summaries/ –

+0

Spot on! Darò una prova e aggiornerò questa discussione se funziona (o no). – OLL

+0

Ho appena ricordato che ho utilizzato il "sommario personalizzato" come esempio nella mia risposta a una domanda diversa qui: http://stackoverflow.com/questions/14159070/when-is-lldb-init-module-called, in modo che potrebbe forse aiutare pure. –

risposta

1

In pratica si potrebbe usare uno script Python come questo proprio sotto di ottenere qualsiasi sintesi personalizzato associato a qualsiasi oggetto

# filename : customSummaries.py 
import lldb 

def someClass_summary(valueObject, dictionary): 
    # get properties from object 
    ivar1 = valueObject.GetChildMemberWithName('_ivar') 
    ivar2 = valueObject.GetChildMemberWithName('_ivar2') 

    # convert values into python intrinsics 
    error = lldb.SBError() 
    var1 = ivar1.GetData().GetFloat(error, 0) 
    var2 = ivar2.GetData().GetDouble(error, 0) 

    # string generation we're gonna use for the summaries 
    valueRepr1 = str(var1) 
    valueRepr2 = str(var2) 

    return 'value1= ' + valueRepr1 + ', value2= ' + valueRepr2 

# this function gets called by the lldb as this script is imported 
def __lldb_init_module(debugger, dict): 

# this adds automatically your summaries as the script gets imported 
debugger.HandleCommand('type summary add Class -F customSummaries.someClass_summary') 

per caricare i riepiloghi personalizzati mentre il lldb è in esecuzione si dovrebbe importare lo script precedente eseguendo command script import /path/to/customSummaries.py e questo è tutto.

Problemi correlati