Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Obscure NSZombie console log

I tried searching on google, and got literally no results when trying to figure out what this means. My console is logging:

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.

Anyone seen this before, or have any idea what it means, what's causing it, and if it's a problem?

like image 847
Mason Avatar asked Dec 31 '11 03:12

Mason


2 Answers

I've seen it. Specifically, on OS X - but the cause should be the same. GEOLocation (and others) is defined in two images which are loaded into the process.

If that were a class you wrote, the class' symbols are defined in multiple object files (would likely be a linker error though…), in the linked libraries, loaded bundles, or some combination of - when code may be loaded dynamically.

If it's not a class you wrote (or synthesized), file a bug with the creator of the class.

It's also possible that the class is defined in your app, and also defined in a linked library. In that event, you would need to change the name of your class.

It is definitely a problem. The class (with that name) is being loaded into the objc runtime twice, and there are no guarantees as to which implementation will be returned when an instance is created since objc uses a flat namespace.

In this case, the class exists in the system frameworks so... send it to the bug reporter - it deserves be fixed quickly.

like image 81
justin Avatar answered Oct 20 '22 00:10

justin


This is a harmless warning that occurs when you have enabled zombie warnings in the build scheme. You can ignore it.

like image 25
DrMickeyLauer Avatar answered Oct 20 '22 00:10

DrMickeyLauer