2013-05-31 5 views
7

Ich habe eine Frage über die "Show Summaries" -Funktion in Xcode, die this guys spricht.So zeigen Sie objective-c Beschreibung in xcode

Derzeit implementieren ich description und debugDescription in meinen Objective-C-Klassen, dass ich nur po myObject geben kann einen schnellen Überblick über den Inhalt zu bekommen und das spart mir Zeit.

Allerdings möchte ich wissen, ob es eine Möglichkeit gibt, dies in dieser "Show Summaries" -Ding zu zeigen. So wie wenn Sie einen NSString haben, wird Ihnen nur die Zeichenfolge im Inhaltsbereich angezeigt, ohne dass Sie weitere Anstrengungen unternehmen müssen.

Und mache ich das auch für meine eigenen Objekte? Das würde mir so viel Zeit sparen :)

Danke Leute.

bearbeiten Dank Martin R Kommentar ich es geschafft, zu bekommen, was ich wollte :) Link

+1

Sie benötigen etwas Python-Skripting. Diese Website zeigt, wie es funktioniert: http://stavash.wordpress.com/2013/01/06/advanced-issues-creating-custom-lldb-object-summaries/ –

+0

Spot on! Ich werde es versuchen und diesen Thread aktualisieren, wenn es funktioniert (oder nicht). – OLL

+0

Ich erinnere mich gerade, dass ich die "benutzerdefinierte Zusammenfassung" als ein Beispiel in meiner Antwort auf eine andere Frage hier verwendet: http://StackOverflow.com/Questions/14159070/When-is-lldb-init-Module- so genannt könnte vielleicht auch helfen. –

Antwort

1

Grundsätzlich Sie rechts unten ein Python-Skript wie diese verwenden könnten beliebige benutzerdefinierte Zusammenfassung auf ein beliebiges Objekt verbunden zu bekommen

# 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') 

die benutzerdefinierten Zusammenfassungen zu laden, während die LLDB Sie läuft sollte über das Skript importieren von command script import /path/to/customSummaries.py laufen und das ist alles.

Verwandte Themen