2011-12-31 10 views
9

Próbowałem wyszukiwać w google i nie otrzymałem dosłownie żadnych wyników, próbując ustalić, co to oznacza. Moja konsola jest zalogowaniu:Niejawny dziennik konsoli NSZombie

objc[17048]: Class _NSZombie_GEOLatLng is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 
objc[17048]: Class _NSZombie_GEOLatLng is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 
objc[17048]: Class _NSZombie_GEOLocation is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 
objc[17048]: Class _NSZombie_GEOLocation is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 

Każdy widział to wcześniej, czy ma jakiś pomysł, co to znaczy, co jest przyczyną, a jeśli jest to problem?

+1

Czy masz jakąś metodę, która ma podciągy tekstu GEOLATING? Udostępnić swój odpowiedni kod, jeśli istnieje? Spróbuj przetestować bez NSZombieEnabled, jeśli testujesz z nim. – Krishnan

Odpowiedz

5

Widziałem to. W szczególności w systemie OS X - ale przyczyna powinna być taka sama. GEOLocation (i inne) jest zdefiniowany na dwóch obrazach, które są ładowane do procesu.

Jeśli była to klasa, którą napisałeś, symbole klasy są zdefiniowane w wielu plikach obiektów (prawdopodobnie będzie to błąd łącznika chociaż ...), w połączonych bibliotekach, załadowanych pakietach lub pewnej kombinacji - kiedy kod może być ładowane dynamicznie.

Jeśli nie jest to klasa, którą napisałeś (lub zsyntetyzowano), złóż błąd u twórcy klasy.

Jest również możliwe, że klasa jest zdefiniowana w aplikacji, a także zdefiniowana w połączonej bibliotece. W takim przypadku musisz zmienić nazwę swojej klasy.

To zdecydowanie problem. Klasa (o tej nazwie) jest ładowana do środowiska wykonawczego objc dwa razy i nie ma gwarancji, która implementacja zostanie zwrócona, gdy instancja zostanie utworzona, ponieważ obiekt korzysta z płaskiej przestrzeni nazw.

W tym przypadku klasa istnieje w strukturze systemu, więc ... wyślij ją do zgłaszającego błąd - zasługuje na szybkie naprawienie.

+0

GEOLokalizacja i GEOLatLng nie znajdują się w żadnej z klas, które zdefiniowałem. Wygląda na to, że nie znajdują się w żadnym z zewnętrznych pakietów, z których korzystam (SBJson i ASIHTTP). Czy to oznacza, że ​​musi to być błąd linkera? Na pierwszy rzut oka wygląda na to, że nie ma żadnych problemów z linkowaniem. Czy masz jakieś sugestie dotyczące tego, gdzie powinienem wyglądać? – Mason

+0

@Mason tak. na samym końcu powiedziałem, że są zdefiniowane/używane przez ramy systemowe. powinieneś zgłosić błąd w Apple. daj im znać, które biblioteki łączysz, wersję os, która generuje ten błąd, i wszelkie inne kroki potrzebne do jej odtworzenia. – justin

0

Miałem ten niejasny komunikat i zauważyłem, że NIB został usunięty z projektu, ale kod nadal go używał. Możesz sprawdzić, czy jakieś zasoby zostały usunięte z pakietu, który jest nadal w użyciu.

2

To jest nieszkodliwe ostrzeżenie, które pojawia się po włączeniu ostrzeżeń zombie w schemacie kompilacji. Możesz to zignorować.

Powiązane problemy