2013-09-25 9 views
15

mam problemu z konsoli debugowania z lldb debuggera po uaktualnieniu do Xcode 5. użyłem wpisać po object i pracował w porządku, jednak teraz pojawia się błądXcode 5 debugger nie drukuje obiektów

error: instance method 'performBlock:afterDelay:' has incompatible result types in different translation units ('id' vs. 'void') 
note: instance method 'performBlock:afterDelay:' also declared here 

Oto screenshot stosu, kod, w którym zatrzymał się debugger, wartości w debugerze wizualnym i konsoli debuggera. jaki może być problem, czy jest to błąd w kodzie 5 lub czy jest coś, co mogę zrobić, żeby to naprawić?

+0

Debugger Xcode 5 działa doskonale dla mnie, a ja używam komend 'p' i' po' przez cały czas ... czy upewniłeś się, że twoja konfiguracja uruchamiania jest rzeczywiście ustawiona na 'debug', a nie' release' (które zazwyczaj je usuwa)? –

+1

Edytuj do powyższego: przynajmniej dla mojego Xcode, jeśli ustawisz konfigurację uruchamiania na 'release', to faktycznie zignoruje punkty przerwania ... Próbowałem również zmienić' code generation'> 'poziom optymalizacji' przez' ustawienia kompilacji', który również nie powielał tego ... nie jestem pewien, co zmieniłeś ... tak, +1 i mam nadzieję, że ktoś jaśniejszy ode mnie może ci pomóc. : D –

+0

@ JRG-Developer konfiguracja uruchamiania jest ustawiona na 'debugowanie'. stworzyłem tylko dowiązanie symboliczne do frameworka iokit, które jest wymagane dla projektu i nie kompiluje się w inny sposób (daje błąd linkera, wydaje się, że jabłko nie utworzyło dowiązania symbolicznego do głównego katalogu głównego, w przeciwieństwie do innych katalogów głównych frameworku przed wysyłką xcode 5) – akaralar

Odpowiedz

7

Znalazłem sposób na naprawienie tego problemu. Problemem było to, że mój osobisty ramy wewnętrzną deklarując metodę w kategorii na NSObject nazwie:

- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay; 

ale trzeci ramy partii (tu BlocksKit) był uznającą samego rodzaju metoda:

- (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay; 

Ci dwaj zdawali się ingerować w środowisko uruchomieniowe LLDB i wytwarzali tę dziwną wiadomość. Aby to naprawić, właśnie zmieniłem jedną z nazw metod. Daj mi znać, jeśli to działa dla Ciebie.

+0

to rozwiązało to dla mnie, jesteś człowiekiem dzięki! – akaralar

+0

Wspaniale słyszeć to jako powitanie rano! :-) – MonsieurDart

+0

Jeśli ktoś ma ten problem i korzysta z projektu UIKitCategoryAdditions, ma kategorię na NSObject, która powoduje właśnie ten problem. Jeśli używasz tego projektu, zdecydowanie sugeruję powyższą poprawkę. –