2016-12-08 14 views
8

W Xcode 8, Kiedy zostanie uderzony dowolny punkt przełomowy i spróbuję wydrukować dowolny obiekt w debugerze Xcode, zawsze wypisze "Nie można rozstrzygnąć typu". Przeszukałem wystarczająco w Internecie. Sprawdziłem, czy EditScheme-> Run-> Info-> BuildConfiguration jest ustawiony na "Debugowanie". Ustawienia kompilacji-> Poziom optymalizacji jest ustawiony na "Brak". Ale nie ma wskazówek, dlaczego tak się dzieje. Czy ktoś mógłby mi pomóc? Z góry dziękuję.xcode 8 Debugger "Nie można rozwiązać typu"

Xcode8 Debugger

+0

Czy to stary projekt? – shallowThought

+0

Nie. Ten projekt jest tworzony za pomocą Xcode8 – CrazyDeveloper

+0

@ CrazyDeveloper czy rozwiązałeś ten problem? –

Odpowiedz

0

Miałem podobny problem z Swift projektu, który obejmował ramy Obj-C. Miałem importowane ramy w moim Swift projektu przy użyciu

import Obj-C-Framework 

Dodatkowo, miałem również utworzony plik Bridging-header w projekcie Swift i zawiera nagłówek Obj-C-ramową korzystając

#include <Obj-C-Framework/Obj-C-Framework.h> 

ten powodował, że debuger Xcode zawsze wyświetlał "nie mógł rozwiązać typu" podczas drukowania obiektów w punktach przerwania. Usunięcie #include w Bridge-Header rozwiązało problem i obiekty były drukowane poprawnie w punktach przerwania.

TL; DR Jeśli twój szybki projekt korzysta z frameworka Obj-C, upewnij się, że nagłówki ramki są , a nie zawarte w nagłówku mostu Swift.

0

Po prostu miałem ten sam problem i został rozwiązany. Mój projekt to projekt mieszany z OC i Swift. Zauważyłem, że jakiś plik .h importował w moim pliku nagłówka Bridging, który spowodował problem. Zdecydowanie enum zadeklarowany w pliku .h powoduje problem, taki jak ten:

typedef NS_ENUM(NSInteger,BadgeAlignment) { 
    AlignmentCenter, 
    AlignmentLeft, 
    AlignmentRight, 
}; 

Jeśli skomentuję kod, wszystko pójdzie dobrze.

Dodałem po prostu przedrostek do każdego elementu wyliczenia i problem został rozwiązany.

typedef NS_ENUM(NSInteger,BadgeAlignment) { 
    BadgeAlignmentCenter, 
    BadgeAlignmentLeft, 
    BadgeAlignmentRight, 
}; 

Po prostu myślę, jeśli istnieje konflikt z pewną enum w Swift, kiedy konwertuje się .h na Swift.

Wciąż jestem zdezorientowany ...