9

I have this message while debugging my app:

Class NSZombie_GEOTileKeyWrapper is implemented in both ?? and ??. One of the two will be used. Which one is undefined.

Do you know what is this? And how to fix it?

Jasarien
  • 58,279
  • 31
  • 157
  • 188
Tuyen Nguyen
  • 4,389
  • 7
  • 51
  • 77
  • I hit this in heavy multi-threaded code. I am starting 50 threads as part of a test. I suspect that the runtime has some issues with the zombies in that case. In most cases this is benign, but I did observe a deadlock while draining the autorelease pools in those threads. If it doesn't impact your code you can ignore it. – Boris Vidolov Feb 02 '18 at 18:09

2 Answers2

12

This happens when you have two implementations of the same class and Obj-c runtime is unable to decide which one to use.

Samuel Liew
  • 76,741
  • 107
  • 159
  • 260
Ankit Srivastava
  • 12,347
  • 11
  • 63
  • 115
3

You can ignore this particular message.

The reason you can ignore it, is because it says:

Class NSZombie_....

Which means that the object to which the message is referring is a dummy object created by Xcode Diagnostics. Read more about Zombies here. The message should not appear if you disable Zombie Objects in your environment diagnostics options.

enter image description here

Manuel
  • 14,274
  • 6
  • 57
  • 130
  • After half a year, I am also encountering this issue in XCode 9.3.1. I am developing this app since 2010, and have never seen this error, even with zombie objects enabled. Now I did some tricky stuff with EKEvent loading in background queues, and I am wondering if this message can **actually be ignored** and XCode is generating this false positive, or if theres actually a more severe issue in my code? How could I find this out? – user826955 May 31 '18 at 10:11