2013-05-31 11 views
7

Mam pytanie dotyczące funkcji "Pokaż podsumowania" w Xcode, o której mówi this guys.Jak wyświetlić opis celu-c w xcode

Obecnie zaimplementować description i debugDescription w moich klas Objective-C do tego można po prostu wpisać po myObject aby uzyskać szybki podgląd zawartości i oszczędza mi czas.

Chciałbym jednak wiedzieć, czy istnieje sposób, aby to pokazać w tym "Pokaż podsumowania". Coś jak z NSString, po prostu pokazuje ci ciąg w okienku zawartości bez dalszych wysiłków od ciebie.

I robię to także dla własnych obiektów? To zaoszczędziłoby mi tyle czasu :)

Dzięki ludziom.

Edit Dzięki komentarzu Martina R za udało mi się dostać to, co chciałem :) Link

+1

Potrzebujesz skryptów w języku Python. Ta strona internetowa pokazuje, jak to działa: http://stavash.wordpress.com/2013/01/06/advanced-issues-creating-custom-lldb-object-summaries/ –

+0

Spot na! Spróbuję i zaktualizuję ten wątek, jeśli działa (lub nie). – OLL

+0

Właśnie przypomniałem sobie, że użyłem "niestandardowego podsumowania" jako przykładu w mojej odpowiedzi na inne pytanie tutaj: http://stackoverflow.com/questions/14159070/when-is-lldb-init-module-called, dzięki czemu może też pomóc. –

Odpowiedz

1

Zasadniczo można użyć skryptu Pythona podobny do tego prawo poniżej, aby uzyskać jakiekolwiek podsumowanie własnego związanego do dowolnego obiektu

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

Aby załadować niestandardowych zestawień, natomiast lldb jest uruchomiony należy zaimportować skrypt powyżej uruchamiając command script import /path/to/customSummaries.py i to wszystko.